首页 > 后端开发 > php教程 > 为什么我的 Angular HTTP POST 值在 PHP 中未定义,如何修复它?

为什么我的 Angular HTTP POST 值在 PHP 中未定义,如何修复它?

Barbara Streisand
发布: 2024-12-15 15:33:15
原创
396 人浏览过

Why are my Angular HTTP POST values undefined in PHP, and how can I fix it?

Angular HTTP POST 到 PHP:处理未定义的 POST 值

在 AngularJS 中,对 PHP 端点执行 HTTP POST 请求有时会导致未定义的值服务器端的 POST 值。当预期数据格式与 Angular 应用程序发送的实际数据不匹配时,就会发生这种情况。

要解决此问题,确保正确设置 Content-Type 标头至关重要。默认情况下,AngularJS 将此标头设置为“application/json”。但是,如果您要发送表单编码的数据,则需要覆盖它。

在提供的代码中,以下行将 Content-Type 标头设置为“application/x-www-form-urlencoded; charset=UTF-8":

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
登录后复制

但是,这需要修改发送的数据以匹配表单编码格式。不需要将数据作为对象发送,而是需要将其转换为查询字符串。这可以通过使用 jQuery.serialize() 或使用encodeURIComponent() 手动构建查询字符串来完成。

或者,如果您更喜欢使用 PHP 的 $_POST 功能,您可以保留默认标头设置并修改用于从请求正文读取原始输入并解码 JSON 的 PHP 代码。这可以通过以下代码来实现:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;
登录后复制

通过对齐数据格式和标头设置,可以确保 PHP 端正确接收 POST 值。

以上是为什么我的 Angular HTTP POST 值在 PHP 中未定义,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板