gpt4 book ai didi

javascript - Ajax - JSON 不会仅在 PATCH 中发送

转载 作者:可可西里 更新时间:2023-11-01 02:29:24 25 4
gpt4 key购买 nike

我正在尝试使用以下方法将 json 数据从客户端发送到我的服务器:

$.ajax({
url : 'http://127.0.0.1:8001/api/v1/pulse/7/',
data : data,
type : 'PATCH',
contentType : 'application/json'
)};

我得到一个 No JSON object could be decoded。但是,当我使用 PUT 时,会发送 json 对象。

它只对 PATCH 不起作用

后端是 Django,我使用的应用程序是 tastypie

最佳答案

首先,检查您是否使用最新版本的 jQuery 库:

  • 旧版本直接限制未知方法(PATCH是新的)。
  • 我已经在 jQuery 1.7 上进行了测试 - PATCH 方法可以正常工作。

其次,并非所有浏览器都支持使用 XMLHttpRequest 的 PATCH 方法:

  • 例如,IE 7,8(9+ 可以正常工作)有 XMLHttpRequest,但它会在 PATCH 上抛出错误:

    new XMLHttpRequest().open('PATCH', '/'); //Illegal argument
  • 要解决此问题,您可以强制 jQuery 使用旧的专有 ActiveXObject xhr,如下所示:

    $.ajax({
    url : 'http://127.0.0.1:8001/api/v1/pulse/7/',
    data : data,
    type : 'PATCH',
    contentType : 'application/json',
    xhr: function() {
    return window.XMLHttpRequest == null || new window.XMLHttpRequest().addEventListener == null
    ? new window.ActiveXObject("Microsoft.XMLHTTP")
    : $.ajaxSettings.xhr();
    }
    });

关于javascript - Ajax - JSON 不会仅在 PATCH 中发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com