Ajax-JSON不只是在补丁中发送

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

$.ajax({
网址:'http://127.0.0.1:8001/api/v1/pulse/7/',
数据:数据,
键入:“补丁”,
contentType:'应用程序/json'
)};

我得到一个无法解码的JSON对象
但是,当我使用PUT时,会发送json对象

它只对修补程序无效

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

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

  • 旧版本直接限制未知方法(补丁是新的)
  • 我已经在jQuery1.7上进行了测试——补丁方法可以毫无问题地工作

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

  • 比如,IE 7,8(9+还可以)有XMLHttpRequest,但它在补丁上抛出了一个错误:

    新建XMLHttpRequest().open('PATCH','/')//非法争论
    
  • 要解决此问题,可以强制jQuery使用旧的专有ActiveXObject xhr,如下所示:

    $.ajax({
    网址:'http://127.0.0.1:8001/api/v1/pulse/7/',
    数据:数据,
    键入:“补丁”,
    contentType:'应用程序/json',
    xhr:function(){
    return window.XMLHttpRequest==null | | new window.XMLHttpRequest().addEventListener==null
    ?新建window.ActiveXObject(“Microsoft.XMLHTTP”)
    :$.ajaxSettings.xhr();
    }
    });          
    

发表评论