programing

jQuery $.ajax를 사용하여 서블릿에 요청 파라미터 배열을 보내는 방법?

lovejava 2023. 10. 6. 20:47

jQuery $.ajax를 사용하여 서블릿에 요청 파라미터 배열을 보내는 방법?

jQuery를 이용해서 자바스크립트 배열을 서블릿에 보내고 싶습니다.$.ajax.

var json=[1,2,3,4];
$.ajax({
            url:"myUrl",
            type:"POST",
            dataType:'json',
            success:function(data){
                // codes....
            },
            data:json

        });

사용할때

request.getParameter("json");
request.getParameterValues("json");

null을 반환합니다.

값에 액세스하려면 어떻게 해야 합니까?

배열을 JS 개체의 값으로 전송하면 다음과 같습니다.{json:[1,2,3,4]}.

var json=[1,2,3,4];
$.ajax({
    url:"myUrl",
    type:"POST",
    dataType:'json',
    data: {json:json},
    success:function(data){
        // codes....
    },
});

servlet에서 요청 매개 변수 이름을 다음과 같이 접미사를 붙여야 합니다.[].

String[] myJsonData = request.getParameterValues("json[]");

jQuery는 PHP와 같은 약한 유형의 언어를 친근하게 대하기 위해 그것들을 추가합니다.

어레이를 [] 대신 읽기 위해 JSON 유형으로 변환해야 합니다.

 var array = [ 1, 2, 3, 4 ];

이 일을 하려면 전화를 해야 합니다.

 var json = JSON.stringify(array)

그러면 당신은 그것을 당신의 ajax call에 전달할 수 있습니다.

 $.ajax({ url:"myUrl",
          type:"POST",
          data: json,
          dataType:'json',
          success:function(data){
             // codes....
          }})

아래 스크립트를 사용해 보십시오.

 jQuery.ajax({
                    url : "your API",
                    type : "POST",
                    dataType:'json',
                    data: JSON.stringify({ jsonData: data }),
                    contentType: "application/json",
                    success : function(response) {
    //do the needful.
    },
                    error : function(jqXHR, textStatus,
                            errorThrown) {
                        var x = 1;
                        closeLoader();  
                    }
                });

아래와 같이 컨트롤러에서 요청을 처리합니다 -

@RequestMapping(value="your url", method = RequestMethod.POST)
public Map<String, Object> verifyRefundRequested(@RequestBody String data) throws UnsupportedEncodingException{
        Map<String, Object> responseMap = null;
        Gson g = new Gson();
        responseMap = g.fromJson(data, Map.class);
        List<String> s = (List<String>) responseMap.get("jsonData");
//iterate list and process 
// return map
        }

javascript 데이터 개체를 이렇게 올려주셔야 합니다.

http://api.jquery.com/jQuery.post/

$.post("test.php", { name: "John", time: "2pm" },
   function(data) {
     alert("Data Loaded: " + data);
   });

언급URL : https://stackoverflow.com/questions/13241668/how-to-send-request-parameter-array-to-servlet-using-jquery-ajax