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

前端之家收集整理的这篇文章主要介绍了javascript – Ajax – JSON不会仅在PATCH中发送前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用以下方法将json数据从客户端发送到我的服务器:
$.ajax({
    url : 'http://127.0.0.1:8001/api/v1/pulse/7/',data : data,type : 'PATCH',contentType : 'application/json'
)};

我得到一个No JSON对象可以被解码.
但是,当我使用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/',contentType : 'application/json',xhr: function() {
        return window.XMLHttpRequest == null || new window.XMLHttpRequest().addEventListener == null 
            ? new window.ActiveXObject("Microsoft.XMLHTTP")
            : $.ajaxSettings.xhr();
    }
});

猜你在找的Ajax相关文章