jQuery.post()发送GET请求?

时间:2014-10-12 01:11:11

标签: jquery get jsonp put

我没有得到使用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 ...

1 个答案:

答案 0 :(得分:2)

根据定义,

jsonp是通过插入请求脚本的脚本标记(允许跨域)来实现的。当浏览器处理该脚本标记时,它会将其转换为该脚本的GET请求。你不能通过jsonp调用进行POST。

您应该只使用jsonp进行跨域调用,通常不允许您进行POST。 JSONP是跨域访问的解决方法,但因此,只能对脚本文件执行GET。