jquery + ajax contentType 에 대한 설명

2658 단어 jquery
프로젝트 에 서 는 jquery 아래 ajax 요청 을 자주 사용 합 니 다.
우선 get 요청 입 니 다. 이것 은 비교적 간단 합 니 다. 여기 서 주로 post 요청 은 두 가지 방식 이 있 습 니 다.
하 나 는 contentType 인자 가 없 는 다음 코드 입 니 다.
전단 코드 는 다음 과 같 습 니 다:
function deleteOne1(id) {
    alert("111")
    alert(id);
    var data1 = {"id":id};
    //var data = JSON.stringify(data1);
    $.ajax({
        type: "post",
        url: "/user/delete",
        data: data1,
        //contentType: "application/json",
        dataType:"json",
        success: function (result) {
          alert(result.res);
        },
        error:function () {
            alert("false");
        }
    });
}

배경 자바 코드 는 다음 과 같 습 니 다:
@PostMapping("/delete")
@ResponseBody
public Map delete(@RequestParam("id") String id){
    service.delete(Long.parseLong(id));
    Mapres= new HashMap<>();
    res.put("res","success");
    return res;
}

이 두 가 지 를 tomcat 와 결합 하면 매우 즐겁게 일 할 수 있다.
두 번 째 방식 은 contentType 을 사용 하면 전단 의 코드 는 다음 과 같 습 니 다.
function deleteOne(id) {
    alert("111")
    alert(id);
    var data1 = {"id":id};
    var data = JSON.stringify(data1);//        JSON stringify     ,        
    $.ajax({
        type: "post",
        url: "/user/delete1",
        data: data,
        contentType: "application/json",
        dataType:"json",
        success: function (result) {
         alert(result.res);
        },
       error:function () 
       { 
            alert("false"); 
       }
    });
}

배경 코드 는 다음 과 같 습 니 다.
@PostMapping("/delete1")
@ResponseBody
public Map delete1(@RequestBody Mapmap){
    if(map!=null) {
        String id = map.get("id").toString();
        service.delete(Long.parseLong(id));
    }
    Mapres= new HashMap<>();
    res.put("res","success");
    return res;
}

여기 주의: 배경 은 @ RequestBody 로 전 달 된 인 자 를 받 아야 합 니 다. 실체 일 수도 있 고 map 일 수도 있 습 니 다.
근본 적 인 원인 은 contentType 이라는 인 자 를 사용 하지 않 으 면 브 라 우 저가 자동 으로 사용 하기 때문이다
Content-Type: application/x-www-form-urlencoded; charset = UTF - 8 이러한 방식 으로 수신: 실제 배경 에서 수신 하 는 방식 은 get 방법의 매개 변수 와 같 습 니 다.
모두: id = 1 & name = xiaoli 와 같은 유사 한 방법 입 니 다.
contentType 을 사용 하면 브 라 우 저 에 배경 수신 방식 을 정의 합 니 다: Content - Type: application / json;charset=UTF-8  이러한 모드 로 수신 하면 매개 변수 형식 은 {id: 1, name: xiaoli} 이 므 로 배경 이 필요 합 니 다. @RequestBody 라 는 주 해 를 요청 합 니 다.

좋은 웹페이지 즐겨찾기