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中文网其他相关文章!