【发布时间】:2012-02-17 11:42:48
【问题描述】:
我正在尝试通过 ajax 发布数据,这是我的信息:
var jsondata =
{"address" : [
{ "id": addid, "streetaddress": streetaddress, "city": city, "state": state, "zipcode": zipcode, "latitude": latitude},
]
};
var jsontosend = JSON.stringify(jsondata, null, 2);
ajax 函数:
$.ajax({
type: "POST",
url: "process.php",
contentType: "application/json; charset=utf-8",
dataType: "JSON",
data: jsontosend,
success: function(msg){
alert(msg);
}
});
return false;
alert('Data sent');
}
在 php 端,当我 print_r($_POST) 它只是说
array(0) {
}
我正在提醒 (jsontosend),它完美地向我展示了一切,以及在使用 post 方法的 firebug 中,它以完美干净的方式显示了所有发送的参数。
它传递任何数据的唯一方法是我使用 GET 方法。
非常感谢任何建议!
编辑:从 firebug 添加 POST 数据。 这是警报功能发出的警报:
{"address":[{"id":1473294,"streetaddress":"3784 Howard Ave","city":"Washington DC","state":"DC","zipcode":20895,"latitude":39.027820587}]}
这是萤火虫在使用 POST 方法时显示的内容:
myData=%7B%0A++++%22address%22%3A+%5B%0A++++++++%7B%0A++++++++++++%22id%22%3A+76076%2C%0A++++++++++++%22streetaddress%22%3A+%223784+Howard+Ave%22%2C%0A++++++++++++%22city%22%3A+%22Washington+DC%22%2C%0A++++++++++++%22state%22%3A+%22DC%22%2C%0A++++++++++++%22zipcode%22%3A+20895%2C%0A++++++++++++%22latitude%22%3A+39.027820587%0A++++++++%7D%0A++++%5D%0A%7D
这是 $_POST 的 var_dump 的响应:
array(0) {
}
这是 $_POST['myData'] 的 var_dump
NULL
【问题讨论】:
-
在发布的数据到达 php 脚本之前,您是否有任何“偶尔”重定向?
-
我不这么认为,但我不确定我是否完全理解您的意思。
-
"当我 print_r..." 你是什么意思?在浏览器中打开此页面?
-
firebug 显示来自被调用的 php 脚本的所有响应。
-
@Mike 我的意思是服务器端的任何 302 重定向?它将丢失发布数据。你在 $_SERVER['REQUEST_METHOD'] 中有什么?