Javascript 如何通过jQuery$.ajax()将JSON字符串发布到服务器?
我有一个JSON对象,我已经用JavaScript“字符串化”了它,我想把它发布到服务器上 我正在使用简单的PHP脚本来测试这一点,该脚本只打印Javascript 如何通过jQuery$.ajax()将JSON字符串发布到服务器?,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我有一个JSON对象,我已经用JavaScript“字符串化”了它,我想把它发布到服务器上 我正在使用简单的PHP脚本来测试这一点,该脚本只打印$\u POST数组。不幸的是它总是空的。我错过了什么 myJsonFile.json {"glossary":{"title":"example glossary","GlossDiv":{"title":"S","GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"St
$\u POST
数组。不幸的是它总是空的。我错过了什么
myJsonFile.json
{"glossary":{"title":"example glossary","GlossDiv":{"title":"S","GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{"para":"A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso":["GML","XML"]},"GlossSee":"markup"}}}}}
post-json.js
$.get('myJsonFile.json',function(myJsonString) {
// other stuff happens here, I promise :)
console.log(myJsonString); // looks like a nicely formed json object to me
$.ajax({
type: 'POST',
url: 'view-json.php',
data: {json: JSON.stringify(myJsonString)},
success: function(data) {
// success message
},
dataType: 'json', // These are the offending lines. Remove.
contentType: 'application/json' // Thanks A.Wolff!
});
},'json');
view-json.php//始终为空数组
<?php print_r($_POST); ?>
使用contentType
指定发送到服务器的数据类型。您将其设置为json,但并没有使用json符号发送javascript对象,所以服务器拒绝请求(我不确定每个服务器如何处理它)。当服务器没有返回JSON时,dataType
也是如此。如何检查$\u POST
是空的?好问题,我正在使用Google Chrome开发工具,检查网络选项卡,单击POST-JSON.php条目并查看响应。在标题中,我可以看到请求负载显示发送了json对象:json=%7B%221%22%3A%7B%22id%22%3A1%2C%22…
,但响应总是:Array()
。另外,我的成功消息显示,嗯,成功了。至少尝试删除数据类型:'json'
(您在这里不返回json,因此内部解析将抛出错误),并在成功回调内部使用控制台.log(数据)代码>尝试删除contentType
tooThanks<代码>数据类型
已删除和控制台。日志(数据)
已添加。log(数据)也返回Array()
。