问题描述:
从 AngularJS 执行 HTTP POST 请求时对于 PHP 脚本,PHP 脚本接收已发布表单的未定义值data.
原因:
AngularJS 将 HTTP Post 请求的 Content-Type 标头默认为 application/json。但是,问题中的示例代码将 Content-Type 标头设置为 application/x-www-form-urlencoded。因此,AngularJS 发送的数据不是 PHP $_POST 功能的预期格式。
解决方案 1:
使用默认的 AngularJS Content-Type 标头application/json 并读取 PHP 中的原始输入,然后反序列化JSON.
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
解决方案 2:
如果依赖 $_POST 功能,则根据数据形成查询字符串并将其作为请求正文发送,确保查询字符串是 URL 编码的。
data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
以上是AngularJS 到 PHP POST:为什么我的变量未定义?的详细内容。更多信息请关注PHP中文网其他相关文章!