jQuery-如何通过Ajax将JSON转换成JSON?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (225)

我试图通过jQuery将一些JSON格式的数据放到服务器上。我的代码如下所示:

$.ajax({
    type: "PUT",
    url: myURL,
    contentType: "application/json",
    data: {"data": "mydata"}
});

但在服务器端,我收到一个data=mydata字符串,而不是预期的JSON。

错误在哪里?

提问于
用户回答回答于

我认为数据需要是一个字符串。对象被转换为查询字符串,这就是你在这里看到的。

你可以使用该JSON.stringify(obj)方法将你的对象转换为字符串。JSON对象的代码可从以下网址获得:https//github.com/douglascrockford/JSON-js/blob/master/json2.js

或者,只需传递用于创建对象的代码作为字符串,但我想这只是一个示例,你需要对已创建的某个对象进行编码。

用户回答回答于

如果你必须在你的应用程序中发送JSON,那么可以在init中的某处执行此操作,然后使用默认$.ajax调用,并且它将始终序列化为JSON字符串,而不是Ajax默认查询字符串。

在这里我使用上面提到的JSON对象:

$.ajaxSetup({
    contentType : 'application/json',
    processData : false
});
$.ajaxPrefilter( function( options, originalOptions, jqXHR ) {
    if (options.data){
        options.data=JSON.stringify(options.data);
    }
});

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励