当前位置: 首页 > 面试题库 >

Ajax-仅在PATCH中不发送JSON

公冶阳德
2023-03-14
问题内容

我正在尝试使用以下方法将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对象时会被发送。

它仅对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();
    }
    

    });



 类似资料:
  • 问题内容: 我正在将UTF-8(日语文本)发送到我的服务器。它可以在Firefox中使用。我的access.log和标头是: Howe,在IE8中,我的access.log说: 出于某种原因,IE8将我的AJAX呼叫变成了问号。为什么!?我根据一些教程添加了scriptCharset和ContentType,但是还是没有运气。 这是我的代码: 问题答案: 尝试使用编码查询参数 正如bobince在

  • 问题内容: 由于IE10已安装在我的Windows 7机器上,因此无法登录到我的应用程序… IE9可以,但FF和Chrome仍然可以。 问题在于,在执行ajax请求(POST或GET)时,IE不会发送会话cookie(jsession id)。 我明确指出我不是跨域的。我使用Jasig / CAS进行身份验证,CAS cookie或会话cookie均由ajax请求发送。Ajax请求通过JQuery

  • 问题内容: 我是java的新手,我为这个问题苦苦挣扎了2天,最后决定在这里提问。 我正在尝试读取jQuery发送的数据,因此可以在servlet中使用它 jQuery的 Servlet 我非常感谢您可以提供的任何帮助。 问题答案: 除非正确发送,否则将无法在服务器上对其进行解析: 您必须使用JSON字符串来发送JavaScript对象。 然后在服务器上: 您可以手动或使用任何库来解析字符串(我建议

  • 我尝试使用JQuery Ajax进行基本身份验证。我像这样向ajax请求添加授权标头。 然后在ASP. Net Web服务中,我尝试获取此标头。 当我打印到标题时,我看不到授权标题 缓存控制:无缓存连接:保持活动状态Pragma:无缓存接受:接受编码:gzip,deflate接受语言:tr tr,tr;q=0.9,en-US;q=0.8,en;q=0.7主机:示例。com参考:http://loc

  • 如何使用dataTables实例化不加载数据的表(服务器模式),然后在单击按钮时加载数据。如果serverSide在初始化时设置为true,则表将自动发送ajax请求,然后呈现数据,这不是我想要的(

  • 问题内容: 我正在尝试完成一些ajax请求,以在不刷新的情况下将textarea插入数据库。这是我的代码: HTML: JS: 我的问题: 1)如何将文本区域的内容发送到onclick函数中? 2)我如何转义/ urlencode等。因此保留了换行符 问题答案: 您的代码有一些问题,例如用于串联 试试这个 -