$.ajax 中的contentType以及Request Payload(rest接口)

时间: 作者:admin 浏览:

1、在$.ajax使用rest接口传参时,要注意传参的形式跟平常不太相同,直接写例子吧,要这样来传:

var json = {name:"小明",age:20,height:175}

$.ajax({
    contentType: "application/json; charset=utf-8",//rest接口要这样写,然后data的类型只能是json字符串,而不是对象,传对象反而接收不到
    dataType: "json",//返回值类型
    url: 'rest/product',//rest接口
    data:JSON.stringify(json),//反而是要转成字符串后端才能接收到
    success: function(data){
        console.log(data);
    },
    error : function(msg) {
        console.log(msg);
    }
});

这样传在chrome浏览器开发者工具的header头里面可以看到显示的是Request Payload,显示的数据是一个json对象,如果上面的data的值没有转成字符串或者contentType的值没有设置为application/json,就会显示的是Form Data,但是这样rest接口后端反而接收不到所传的值,遇到的就去试试吧。

2、其实这里也有人说到,rest接口正常没有嵌套的json对象是没问题的,但如果是有嵌套的json对象就需要用上面的方法,也就是说:

以下这种json对象是没问题的:

var json={
    name:"小明",
    age:18
}

但如果是这种嵌套型的:

var json={
    name:"小明",
    age:18,
    List:[{
        height:175,
        weight:60
    }]
}

就要用第1点的那些设置和数据形式才可以正常接收传参。快去试试吧

微信公众号
微信公众号:
  • 前端全栈之路(微信群)
前端QQ交流群
前端QQ交流群:
  • 794324979
  • 734802480(已满)

更多文章

栏目文章


Copyright © 2014-2023 seozhijia.net 版权所有-粤ICP备13087626号-4