我想将json数据发送到php文件。当我发送它作为查询字符串时,一半数据被发送,当我以下列方式发送它时,根本没有发送任何内容
Ext.Ajax.request({
url: 'GetData.php',
params: {
data:document.getElementById("jsonData").value
},
method: "POST",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(xhr) {
console.log(xhr)
}
});
我以不同的方式修改了我的ajax调用,但它总是发送null。在发出ajax请求之前,我已经检查过我的hiddenfield'jsonData'中有数据。请帮忙 这是json数据 -
{"items":[{"text":"Table of Contents","items":[{"text":"Cover","source":"book/00__Cover.html","leaf":true,"items":"[]"},
{"text":"Introduction","source":"book/Introduction.html","leaf":true,"items":"[{\"text\":\"Me maps\",\"source\":\"book/Introduction.html#c000030\\\"\",\"leaf\":true},{\"text\":\"Spatial perspective\",\"source\":\"book/Introduction.html#c000031\\\"\",\"leaf\":true}]"},{"text":"Index","source":"book/Index.html","leaf":true,"items":"[]"}]},{"text":"My Study Guide","source":"studyguide.js","leaf":true},{"text":"Shared","source":"shared.js","leaf":true}]}
答案 0 :(得分:1)
headers: { 'Content-Type': 'application/json' },
jsonData: {
document.getElementById("jsonData").value
},
dataType: 'json',
以及。我从未使用过它,也不知道它是否存在 此外,你不能设置charset它发送它作为utf-8,无论你做什么
编辑也记录jsondata.val就像上面的那个男人说的那样只是为了确保
<强> EDIT2 强>
Ext.Ajax.request({
url: 'GetData.php',
headers: { 'Content-Type': 'application/json' },
jsonData: {
document.getElementById("jsonData").value
},
method: "POST",
dataType: 'json',
success: function(xhr) {
console.log(xhr);
}
});
你改变你的代码是这样的吗?您是否尝试过记录失败错误?如果是这样的话呢。你错过了一个;在你的成功功能
答案 1 :(得分:0)
我认为您需要将ajax调用更改为此(假设("jsonData").value
包含json对象):
Ext.Ajax.request({
url: 'GetData.php',
jsonData: Ext.util.JSON.encode(document.getElementById("jsonData").value)
method: "POST",
success: function(xhr) {
console.log(xhr)
}
});
在此处阅读更多内容:http://joekuan.wordpress.com/2010/12/06/posting-json-data-from-ext-js-to-php/