如何使用AJAX正确测试已发布到的PHP脚本?

如何使用AJAX正确测试已发布到的PHP脚本?,php,ajax,Php,Ajax,我正在努力研究如何测试我的代码 我有一个PHP脚本,它从字符串中提取值,并将它们组合成一条要发送的消息 该表单使用AJAX提交,如下所示: $.ajax({ type: "POST", url: "actions/sendForm.php", data: dataString, success: console.log('Success!') }); 数据应该被传递到PHP脚本。vardataString如下所示: var dataString = 'name=

我正在努力研究如何测试我的代码

我有一个PHP脚本,它从字符串中提取值,并将它们组合成一条要发送的消息

该表单使用AJAX提交,如下所示:

$.ajax({
    type: "POST",
    url: "actions/sendForm.php",
    data: dataString,
    success: console.log('Success!')
});
数据应该被传递到PHP脚本。var
dataString
如下所示:

var dataString = 'name='+name+'&company='+company+'&email='+email+'&phone='+phone+'&message='+message+'&signup='+signUp;
然后,我尝试访问这些变量:

parse_str($dataString);

echo $name;
echo $company;
echo $email;
echo $phone;
echo $message;
echo $signUp;
我的问题是,有些事情没有发生,我不能再测试我的PHP脚本了,因为我是通过AJAX提交的,所以我从来没有用正确的数据实际命中脚本


当通过AJAX提交表单时,如何测试脚本工作/回送变量等?

由于方法是
POST
,只需回送
$\u POST
值:

print_r($_POST);
或者,如您的示例所示,使用
extract
代替
parse\u str

extract($_POST);

echo $name;
echo $company;
echo $email;
echo $phone;
echo $message;
echo $signUp;
在您的
ajax
功能中,将
success
更改为:

success: function( msg ) {
    console.log(msg);
}

要查看PHP脚本中打印的内容,请使用开发者工具控制台。大多数主流浏览器都内置了它们,可以使用F12键访问它们。查看网络选项卡(在Chrome中)以查看所有网络流量,包括任何Ajax调用。您可以单击ajax调用以查看响应。您在PHP文件中回显的任何内容都将出现在响应中


因此,如果在PHP文件中使用
var\u dump($\u POST)
,您可以检查这些值是否如预期的那样存在。在Chrome中,您还可以查看headers选项卡以查看Ajax发送的数据。

为什么不简单地设置一个类似XDebug之类的调试器呢?如果您使用的是一个支持的IDE,那么像这样测试它是轻而易举的事。然后,使用
print\r($\u POST),然后继续下一步。始终采取与数据相同的步骤,您将永远不会遇到调试问题。“然后,我尝试访问这些变量:
parse_str($dataString);
”–PHP变量
$dataString
应该来自哪里…?