我没有得到使用jQuery.post()时应该做的响应,所以我查看了我的服务器日志,我实际上收到了一个GET请求。我错过了什么?是因为我使用jsonp
作为我的数据类型吗?这是我的jquery:
$.post('xxx', 'server=xxx', function (data) {
console.log(data);
$.post('xxx', 'username=xxx&password=xxx', function (data) {
console.log(data);
$.get('xxx', function (data) {
data = $.parseJSON(data);
console.log(data);
}, "jsonp");
} , "jsonp")
}, "jsonp");
我的服务器日志清楚地显示我正在发送GET请求。
[11/Oct/2014 21:01:48] "GET ...
[11/Oct/2014 21:01:48] "GET ...
[11/Oct/2014 21:01:48] "GET ...
答案 0 :(得分:2)
jsonp
是通过插入请求脚本的脚本标记(允许跨域)来实现的。当浏览器处理该脚本标记时,它会将其转换为该脚本的GET请求。你不能通过jsonp调用进行POST。
您应该只使用jsonp进行跨域调用,通常不允许您进行POST。 JSONP是跨域访问的解决方法,但因此,只能对脚本文件执行GET。