我想摆脱我的html表单提交并用Ajax替换它们(X M L H t p Request)。我已将表单返回值设置为" false"我写了一个小测试来测试Ajax机制。 在Java脚本端,我确实收到就绪状态4和状态200,因此发送数据显然成功,但在PHP端,变量永远不会到达。
我尝试使用POST方法以常规方式拾取它们,就像我之前收到html提交时一样,其简化形式为:
$ x = $ _POST [' x']; echo $ x;
' X'与状态4的状态200的Ajax一起发送。
任何人都可以告诉我做错了什么吗? 非常感谢。
答案 0 :(得分:0)
您最有可能发布JSON数据?试试这个片段:
switch ($httpMethod) {
case 'POST':
$rest_json = file_get_contents("php://input");
$jsonData = json_decode($rest_json,true);
foreach($jsonData as $item){
var_dump($item);
$studentsCollection->insert($item);
}
$response = $studentsCollection->find();
break;
这是来自我正在使用的一个简单的休息api。只需在没有动词切换语句的情况下将其更改为适合自己。
答案 1 :(得分:0)
也许你的ajax请求是通过GET而不是POST提交的。尝试$ _GET而不是$ _POST,或使用$ _REQUEST来覆盖你的基础。如果您不使用jQuery,我建议您使用它,使用ajax(),post()等方式可以轻松实现ajax。
$('form').submit(function(e)
{
e.preventDefault();
$.post("test.php", $(this).serialize(), function(result) {
console.log(result)
});
});
答案 2 :(得分:0)
我建议检查你的ajax请求的标题(在chrome或firefox中),你可以看到你的数据是否真的传递给了PHP端。
答案 3 :(得分:0)
要找到问题,您可以使用调试工具Firebug来调试ajax请求。
使用Firebug,您可以看到ajax调用。
您可以看到您发送的参数。
您可以看到ajax请求的响应。
我的建议是使用Jquery为你的javascript函数。
Jquery ajax调用代码 -
$.ajax({
type: 'POST',
url: 'ServerPageUrl.php',
dataType: 'json',
success: function(data){
if(data==true)
{
alert("OK");
}
else
{
alert("Error save data");
}
}
});
您可以从jQuery.ajax()
了解有关jquery ajax的更多信息感谢。