AngularJS HTTP Post 到 PHP:解决未定义的变量
您的 AngularJS 代码遇到了发布到 PHP 脚本的数据显示为未定义的问题。为了解决这个问题,我们需要深入研究细节。
在您的 AngularJS 代码中,您定义了一个 Content-Type 标头为“application/x-www-form-urlencoded”的 HTTP POST 请求。但是,您的数据未格式化为查询字符串。 PHP 依赖 $_POST 接收表单编码数据,这需要将数据格式化为键值对。
要解决此问题,有两个选项:
选项 1:使用 JSON
AngularJS 默认使用“application/json”Content-Type 标头进行 HTTP 请求。您可以通过读取 PHP 中的原始输入并反序列化 JSON 来利用这一点。这可以使用以下 PHP 代码来完成:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
选项 2:手动格式化查询字符串
如果您更喜欢使用 $_POST,您可以手动格式化您的数据作为查询字符串。确保它是 URL 编码的。在 JavaScript 中,您可以使用以下方法实现此目的:
let data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
将 HTTP 请求数据设置为此格式化的查询字符串而不是当前格式。通过这些调整,您的 AngularJS HTTP POST 请求将正确地将数据发送到您的 PHP 脚本,解决了未定义变量的问题。
以上是为什么我的 PHP 脚本中未定义 AngularJS HTTP POST 变量?的详细内容。更多信息请关注PHP中文网其他相关文章!