Javascript ajax没有到达php端
我想摆脱html表单提交,并用Ajax(xmlhtp请求)替换它们。我已经将表单返回值设置为“false”,并编写了一个小测试来测试Ajax机制。 在Java脚本端,我确实收到就绪状态4和状态200,因此发送数据显然成功,但在PHP端,变量永远不会到达 我尝试使用POST方法以通常的方式获取它们,与我以前接收html提交时的方式相同,其中简化形式为: $x=$_POST['x']; echo$x “x”已与Ajax一起发送,状态4,状态200 谁知道我做错了什么?Javascript ajax没有到达php端,javascript,php,Javascript,Php,我想摆脱html表单提交,并用Ajax(xmlhtp请求)替换它们。我已经将表单返回值设置为“false”,并编写了一个小测试来测试Ajax机制。 在Java脚本端,我确实收到就绪状态4和状态200,因此发送数据显然成功,但在PHP端,变量永远不会到达 我尝试使用POST方法以通常的方式获取它们,与我以前接收html提交时的方式相同,其中简化形式为: $x=$_POST['x']; echo$x “x”已与Ajax一起发送,状态4,状态200 谁知道我做错了什么? 非常感谢。很可能您正在发布JS
非常感谢。很可能您正在发布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;
这是我使用的一个简单的RESTAPI。只需将其更改为适合您自己,而无需动词切换语句。也许您的ajax请求是通过GET而不是POST提交的。尝试使用$\u GET而不是$\u POST,或者使用$\u REQUEST来覆盖这两个基础。如果您不使用jQuery,我建议您使用它,ajax更容易使用,等等
我会检查ajax请求的标题(在chrome或firefox中),您可以查看数据是否真的传递到PHP端。要找到问题,可以使用调试工具调试ajax请求 使用Firebug可以看到ajax调用 您可以查看发送的参数 您可以看到ajax请求的响应 我的建议是对javascript函数使用Jquery Jquery ajax调用代码-
$.ajax({
type: 'POST',
url: 'ServerPageUrl.php',
dataType: 'json',
success: function(data){
if(data==true)
{
alert("OK");
}
else
{
alert("Error save data");
}
}
});
您可以从以下站点了解有关jQueryAjax的更多信息:
谢谢。显示整个AJAX代码,否则很难判断出哪里出了问题。“.htaccess”可能是另一个原因。可能有一些规则会将您的请求转到其他页面
$.ajax({
type: 'POST',
url: 'ServerPageUrl.php',
dataType: 'json',
success: function(data){
if(data==true)
{
alert("OK");
}
else
{
alert("Error save data");
}
}
});