我正在尝试使用以下方法将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。但是,当我使用PUTjson对象时会被发送。
No JSON object could be decoded
PUT
它仅对PATCH不起作用
后端是Django,即时通讯使用的应用程序是tastypie
首先,检查您是否使用了最新版本的jQuery库:
其次,并非所有浏览器都支持使用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(); }
});