当前位置: 首页 > 知识库问答 >
问题:

AngularJS HTTP post到PHP且未定义

农建弼
2023-03-14
function LoginForm($scope, $http)
{
    $http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

    $scope.email    = "fsdg@sdf.com";
    $scope.password = "1234";

    $scope.login = function()
    {
        data = {
            'email' : $scope.email,
            'password' : $scope.password
        };

        $http.post('resources/curl.php', data)
        .success(function(data, status, headers, config)
        {
            console.log(status + ' - ' + data);
        })
        .error(function(data, status, headers, config)
        {
            console.log('error');
        });
    }
}
<?php
$email = $_POST['email'];
$pass  = $_POST['password'];
echo $email;
?>

共有1个答案

东郭昌胤
2023-03-14

angularjs.post()将Content-type头默认为application/json。您正在重写它以传递表单编码的数据,但是您没有更改data值以传递适当的查询字符串,因此PHP没有像您预期的那样填充$_post

我的建议是使用application/json的默认angularjs设置作为头,读取PHP中的原始输入,然后反序列化JSON。

这可以在PHP中实现,如下所示:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;
 类似资料:
  • 问题内容: 我有一个带有标签的表格 该函数在javascript中被很好地调用。 我从PHP文件中获得了200 OK响应,但是返回的数据就是这样,并且未定义。这就是我拥有的所有php 知道为什么我会得到未定义的值吗? 编辑 我想指出,因为这似乎是一个受欢迎的问题(但它是旧的),并已被弃用,你应该使用如@詹姆斯氏族在commments指出 问题答案: angularjs 默认将Content- ty

  • 问题内容: 我有一个带有标签的表格 该函数在javascript中被称为罚款。 我从PHP文件中获得了200 OK响应,但是返回的数据就是这样,并且未定义。这就是我拥有的所有php 知道为什么我会得到未定义的值吗? 编辑 我想指出,因为这似乎是一个受欢迎的问题(但它是旧的),并已被弃用,你应该使用如@詹姆斯氏族在commments指出 问题答案: angularjs 默认将Content- typ

  • 我很难找出PHP用户/注册站点的错误。注册后,将发送一封带有激活链接的电子邮件,单击该链接后,它将成功激活帐户,但不会显示成功消息。 如果我在浏览器中复制/粘贴激活链接,并在链接中的电子邮件或电子邮件代码中更改一个字母,它将成功地给我所有的错误消息。 激活链接如下所示: http://website.com/activate.php?email=useremail@网站。通用域名格式 这是我的激活

  • 问题内容: 这听起来真的很愚蠢,但我无法弄清楚为什么会收到此错误。 我创建了一个选择框,以我的html形式命名为“ query_age”: 在相应的php形式中,我有: 运行页面时,出现此错误: 注意:未定义的索引:第19行的index.php中的query_age 我不明白为什么会这样,我很想知道如何解决它。 问题答案: 我没有看到php文件,但是可能就是这样- 在您的php文件中替换: 与:

  • 问题内容: 我正在使用angularjs和Typescript创建一些应用程序,但是我无法解决此错误, 这是我的* .ts代码 这是我的GULP任务 这是我的错误:未捕获的ReferenceError:导出未定义 问题是:如何在打字稿中使用类似es6的导入?我缺少什么? 问题答案: 我使用angular 1.6和webpack,当我将模块更改为 “ umd”* 时,它可以在我这边使用 * UMD:

  • 所以我已经浏览了所有的论坛,但仍然出现错误“sh:1:/usr/bin/ffmpeg:notfound”。如果我从终端运行ffmpeg,它工作正常,可以毫无问题地转换视频,但是如果我使用PHP exec或shell_exec,返回的总是ffmpeg not found。 这是我的代码: 如果我从终端运行哪个ffmpeg或何为ffmpeg,它将返回 /usr/bin/ffmpeg,但如果我从代码中执