【问题标题】:jQuery.ajax POST request converted to GETjQuery.ajax POST 请求转换为 GET
【发布时间】:2012-10-23 15:23:09
【问题描述】:

我有以下 jQuery 代码:

    $.ajax({
        url: Url,
        dataType: 'JSONP',
        type: 'POST',
        success: function (data, textStatus, jqXHR) {
            //callback function here
        },
        error: function (xhr, ajaxOptions, thrownError) {
            //report error
        }
    });

但是,当我在 Fiddler 中查看此 AJAX 请求时,我的请求已从 POST 转换为 GET

我要连接的 API 不允许这样做,因为它必须是 POST 请求。

为什么会这样?

【问题讨论】:

  • 如果您要连接的 API 需要 POST,那么它没有使用 JSON-P。如果它使用JSON-P,则不需要POST。 (也许您对 JSON(一种数据交换格式)和 JSON-P(一种绕过同源策略的机制)感到困惑?)

标签: ajax jquery post get


【解决方案1】:

JSONP 请求只能是 GET。

删除dataType: 'JSONP'

【讨论】:

  • 哦,好的,谢谢!可以的时候会接受。没有JSONP我怎么做XSS? ://
  • @Curt:您可以将CORSmodern browsers 一起使用,前提是您要连接的服务器允许您这样做。 IE8 和 9 对 CORS 的支持存在,但已损坏,需要变通方法(jQuery 不适合您的变通方法)。 IE10会正常支持。
【解决方案2】:
dataType: 'JSONP', 

始终是 GET 请求

【讨论】:

    【解决方案3】:

    您不能将 POST 与 JSONP 一起使用,请参阅 https://groups.google.com/forum/?fromgroups=#!topic/jquery-dev/5-tKI-7zQvs 了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 2018-11-22
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多