Fork me on GitHub

Ajax请求发送的FormData是"[object object]"

  今天遇见一个ajax请求的问题,以前data直接传了一个json字符串,后来适应新需求将ajax的请求参数修改为对象的格式让ajax自动转换为json字符串。以下是两种ajax请求代码。

//字符串格式
$.ajax({
    url:"http://127.0.0.1/test",
    type:"post",
    dataType:"JSON",
    data:"{'param':'test'}",
    processData :false,
});

//对象格式
$.ajax({
    url:"http://127.0.0.1/test",
    type:"post",
    dataType:"JSON",
    data:{
        param:'test'
    },
    processData :false,
});

  之前字符串格式的方式功能是能调通的,但是改成对象方式功能就调不通了,后台断点发现获取不到param参数。通过Chrome调试发现这个ajax请求的FormData是一个"[Object object]"字符串,并不是预期的json字符串。其他使用对象方式也没有出过问题,后来搜索了下ajax请求参数的含义,发现是因为processData这个配置的原因,processData的作用是:指定ajax是否将data中的数据进行转化,默认是true,即默认会将data中的数据转化成json字符串,false时,直接将data传输到后台。

  之前的ajax请求不是我写的,所有不懂processData的含义,去掉processData或者修改为true,就可以转化了。

posted @ 2015-12-20 10:50  瓘木  阅读(12874)  评论(0编辑  收藏  举报