$http post到PHP,但不起作用

$http post到PHP,但不起作用,php,angularjs,Php,Angularjs,在解码Json之后,我在将数据传送到PHP文件时遇到了问题,我得到了一个错误。有人能帮我知道哪里出了问题吗 app.js $scope.formPost = function(){ $http.post('sendmail.php',{msg: 'helo'}) .success(function(data,status,headers,config){ console.log('data: ' + data);

在解码Json之后,我在将数据传送到PHP文件时遇到了问题,我得到了一个错误。有人能帮我知道哪里出了问题吗

app.js

 $scope.formPost = function(){


        $http.post('sendmail.php',{msg: 'helo'})
            .success(function(data,status,headers,config){


                console.log('data: ' + data);
                console.log('status: ' + status);
                console.log('headers: ' + headers);

            }).error(function(data,status,headers,config){

            });


};
sendmail.php

$data = json_decode(file_get_contents("php://input"), true);

$msg = $data->msg;
echo $msg;
我收到的错误信息是

注意:试图在第5行的/Applications/MAMP/htdocs/my new project/sendmail.php中获取非对象的属性


有什么想法吗?

我现在不能说这是否是问题的全部,但您已经明确要求
json\u decode()
通过向关联数组传递第二个参数true来返回关联数组


要么开始使用$data作为数组,要么去掉
true

这是否是问题的全部,我现在不能说,但您已经明确要求
json\u decode()
通过将第二个参数true传递给关联数组来返回关联数组


要么开始使用$data作为数组,要么去掉
true

看起来您发送的是常规表单数据,而不是json,因此可以使用php超级全局
$\u POST]

//$data = json_decode(file_get_contents("php://input"), true);

$msg = $_POST['msg'];
echo $msg;

看起来您发送的是常规表单数据,而不是json,因此可以使用php超级全局
$\u POST]

//$data = json_decode(file_get_contents("php://input"), true);

$msg = $_POST['msg'];
echo $msg;

下面是我为解决同样的问题所做的:

$scope.submitData = function() { 

    var myobject = {'destination': destination, 'title': _title, 'message': _message};

    Object.toparams = function ObjecttoParams(obj) {
        var p = [];
        for (var key in obj) {
            p.push(key + '=' + encodeURIComponent(obj[key]));
        }
        return p.join('&');
    };   

    $http({
        method: 'POST',
        url: "data/insert.php",
        data: Object.toparams(myobject)
    })

}   
和Php:

$data = file_get_contents("php://input");
$destination = $_POST["destination"];
$title = $_POST["title"];
$message = $_POST["message"]; 
根据这一回答:

以下是我为解决同一问题所做的:

$scope.submitData = function() { 

    var myobject = {'destination': destination, 'title': _title, 'message': _message};

    Object.toparams = function ObjecttoParams(obj) {
        var p = [];
        for (var key in obj) {
            p.push(key + '=' + encodeURIComponent(obj[key]));
        }
        return p.join('&');
    };   

    $http({
        method: 'POST',
        url: "data/insert.php",
        data: Object.toparams(myobject)
    })

}   
和Php:

$data = file_get_contents("php://input");
$destination = $_POST["destination"];
$title = $_POST["title"];
$message = $_POST["message"]; 
根据这一回答:

您在$data中得到了什么?使用var_dump string(0)”“此外,还获得了状态200和所有内容,只是没有显示在php文件中。如果您使用var_dump文件的内容位呢?使用$http的方式,它不发送json数据,而是发送简单的$u POST参数。所以试着做
echo$\u POST['msg']
是的,我已经试过了。未定义的索引$_帖子是空的。我真的不知道在这里还能做什么。尝试了一切。你在$data中得到了什么?使用var_dump string(0)”,也得到了状态200和所有东西,只是没有显示在php文件中。如果你使用var_dump文件的内容位呢?使用$http的方式,它不发送json数据,它发送简单的$u POST参数。所以试着做
echo$\u POST['msg']
是的,我已经试过了。未定义的索引$_帖子是空的。我真的不知道在这里还能做什么。尝试了一切。你在$data中得到了什么?使用var_dump string(0)”,也得到了状态200和所有东西,只是没有显示在php文件中。如果你使用var_dump文件的内容位呢?使用$http的方式,它不发送json数据,它发送简单的$u POST参数。所以试着做
echo$\u POST['msg']
是的,我已经试过了。未定义的索引$_帖子是空的。我真的不知道在这里还能做什么。尝试了所有操作。得到了true,但现在数组的输出值为NULL。@arsenalist当前没有足够的信息来知道为什么没有数据。请参阅注释。这是一个活生生的示例。。。。。这是发送到sendmail.phpgot的值,但现在数组的输出值为NULL。@arsenalist当前没有足够的信息来知道为什么没有数据。请参阅注释。这是一个活生生的示例。。。。。这是发送到sendmail.phpgot的值,但现在数组的输出值为NULL。@arsenalist当前没有足够的信息来知道为什么没有数据。请参阅注释。这是一个活生生的示例。。。。。这是发送到sendmail.phpstill的内容,在使用全局POST时显示空数组。在我的控制台中,我可以看到数据,但是当我试图通过url(php)显示数据时,什么也没有发送。数组为空,var_dump显示NULL。@arsenalist
。在我的控制台中,我可以看到数据,但是当我尝试通过url(php)显示数据时,什么都没有发送“
请解释你的意思,通过url显示”?我是指当我尝试将数据发送到php文件时。例如,在我的控制台中,我得到了数据:object(stdClass)#1(1){[“msg”]=>string(4)“helo”}(这是数据部分),但是,当将其发送到sendmail.php时,使用var_dump时,我得到了NULL。。。也是状态获得200,所以我知道它是成功的。使用全局POST时仍然显示空数组。在我的控制台中,我可以看到数据,但是当我试图通过url(php)显示数据时,什么也没有发送。数组为空,var_dump显示NULL。@arsenalist
。在我的控制台中,我可以看到数据,但是当我尝试通过url(php)显示数据时,什么都没有发送“
请解释你的意思,通过url显示”?我是指当我尝试将数据发送到php文件时。例如,在我的控制台中,我得到了数据:object(stdClass)#1(1){[“msg”]=>string(4)“helo”}(这是数据部分),但是,当将其发送到sendmail.php时,使用var_dump时,我得到了NULL。。。也是状态获得200,所以我知道它是成功的。使用全局POST时仍然显示空数组。在我的控制台中,我可以看到数据,但是当我试图通过url(php)显示数据时,什么也没有发送。数组为空,var_dump显示NULL。@arsenalist
。在我的控制台中,我可以看到数据,但是当我尝试通过url(php)显示数据时,什么都没有发送“
请解释你的意思,通过url显示”?我是指当我尝试将数据发送到php文件时。例如,在我的控制台中,我得到了数据:object(stdClass)#1(1){[“msg”]=>string(4)“helo”}(这是数据部分),但是,当将其发送到sendmail.php时,使用var_dump时,我得到了NULL。。。也可以获得200的状态,所以我知道这是成功的。