如何使用AJAX正确测试已发布到的PHP脚本?
我正在努力研究如何测试我的代码 我有一个PHP脚本,它从字符串中提取值,并将它们组合成一条要发送的消息 该表单使用AJAX提交,如下所示:如何使用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=
$.ajax({
type: "POST",
url: "actions/sendForm.php",
data: dataString,
success: console.log('Success!')
});
数据应该被传递到PHP脚本。vardataString
如下所示:
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)像@n-dru建议的那样在PHP中编写code>,然后继续下一步。始终采取与数据相同的步骤,您将永远不会遇到调试问题。“然后,我尝试访问这些变量:parse_str($dataString);
”–PHP变量$dataString
应该来自哪里…?