我试图通过Ajax与jQuery将一些JSON格式的数据放到服务器上.我的代码看起来像这样:
$.ajax({
type: "PUT",
url: myURL,
contentType: "application/json",
data: {"data": "mydata"}
});
Run Code Online (Sandbox Code Playgroud)
但是在服务器端,我收到一个data=mydata字符串,而不是预期的JSON.萤火虫告诉我同样的事情.
错误在哪里?
And*_*ndy 53
我认为数据需要是一个字符串.对象将转换为查询字符串,这是您在此处看到的.
您可以使用该JSON.stringify(obj)方法将Object转换为String.JSON对象的代码可从以下网址获得:https://github.com/douglascrockford/JSON-js/blob/master/json2.js.
或者,只需传递您正在使用的代码来创建对象作为文字字符串,但我想这只是一个示例,您将要编码一些您已经创建的对象.
小智 31
如果您总是必须在应用程序中发送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);
}
});
Run Code Online (Sandbox Code Playgroud)