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 值。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3