我有一个JSON对象,我已经"字符串化"在JavaScript中,我想发布到服务器。
我用简单的PHP脚本测试它,只打印$_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"}}}}}
后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); ?>
答案 0 :(得分:3)
使用contentType
指定发送给服务器的数据类型。你将它设置为json,但你没有使用JSON表示法发送javascript对象,所以服务器拒绝请求(我不确定每个服务器如何处理它)。对dataType
也可以这么说,而你的服务器没有返回JSON。