【问题标题】:jQuery.post() is sending a GET request?jQuery.post() 正在发送 GET 请求?
【发布时间】:2014-10-12 01:11:11
【问题描述】:

我在使用 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 ...

【问题讨论】:

  • JSONP 不能使用 POST。

标签: jquery get jsonp put


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 2018-03-18
    • 2022-01-25
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2018-09-04
    相关资源
    最近更新 更多