我的客户端中有以下Request.JSON(请注意使用MooTools自己的JSON解析器转换为JSON字符串):
var data = {action: 'delete', data: { id: item} };
data = JSON.encode(data);
var aRequest = new Request.JSON({
onSuccess : (function(json) {
...
}).bind(this),
onFailure : (function(e) {
...
}).bind(this),
onError : (function(text, error) {
...
}).bind(this),
url : "../sd_delete.php",
method : "post",
data: data,
urlEncoded: false
});
aRequest.setHeader('Content-Type', 'application/json; charset=utf-8');
aRequest.send();
现在,在服务器端,$ _REQUEST和$ _POST都是空数组。如何访问我使用Request.JSON发送的字符串?或者我的客户方法有什么缺陷吗?
由于
编辑:刚刚发现,即使我将数据作为对象发送(没有JSON.encode),服务器端也没有POST数据。 GET有效。可能是服务器端问题?!
答案 0 :(得分:2)
data
选项应该是一个对象。尝试:
new Request.JSON({
onSuccess : (function(json) {
...
}).bind(this),
onFailure : (function(e) {
...
}).bind(this),
onError : (function(text, error) {
...
}).bind(this),
url : "../sd_delete.php",
method : "post",
data: { anyname: data },
urlEncoded: false
});
答案 1 :(得分:1)
以下应该工作。
var data = {action: 'delete', data: { id: item} };
var aRequest = new Request.JSON({
url : "../sd_delete.php",
onComplete: function(pResponse) {
console.log(pResponse);
}.bind(this)
}).post(data);
然后您将在php中收到以下帖子数据:
echo $_POST['action'];