jQuery.ajaxSetup 把 processData 设置为 false 后使用 GET 方式请求依然会处理参数?

$.ajaxSetup({    
    type: 'GET',
    dataType: 'text',
    cache: false,
    processData: false,
    beforeSend: function () {
        console.log(arguments[1]);
        console.log(arguments[1].data);
    },
});

$.ajax({
    url: 'xxx',
    type: 'GET',
    processData: false, 
    data: {
        info: 'text',
    },

以上是部分关键代码,当我调用ajaxtype设置为POST的时候data就可以传进来,可是我把type设置为GETdata就不会定义,而在ajax对象的url属性后面加上一句?[object Object]&_=1478522566614,这是怎么一回事?

阅读 10.8k
1 个回答

data
类型:String
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。

processData
类型:Boolean
默认值: true。默认情况下,通过data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题