PHP注意:尝试获取非对象错误的属性

时间:2016-03-19 04:28:20

标签: php angularjs json syntax-error notice

我在AngularJS中使用Factory,脚本是

app.factory('GetCountryService', function ($http, $q) {
        return {
            getCountry: function(str) {
                // the $http API is based on the deferred/promise APIs exposed by the $q service
                // so it returns a promise for us by default
                var url = "https://www.bbminfo.com/sample.php?token="+str;
                return $http.get(url)
                    .then(function(response) {
                        if (typeof response.data.records === 'object') {
                            return response.data.records;
                        } else {
                            // invalid response
                            return $q.reject(response.data.records);
                        }

                    }, function(response) {
                        // something went wrong
                        return $q.reject(response.data.records);
                    });
            }
        };

    });

我的输出响应屏幕截图:

enter image description here

我的PHP脚本:

<?php



header("Access-Control-Allow-Origin: *");

header("Content-Type: application/json; charset=UTF-8");



session_start();


$ip = $_SERVER['REMOTE_ADDR'];

$dbname = "xyzData";
$link = mysql_connect("localhost", "Super", "Super") or die("Couldn't make connection.");
$db = mysql_select_db($dbname, $link) or die("Couldn't select database");

$uid = "";
$txt = 0;
$outp = "";

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

if (isset($objData->token))
    $uid = mysql_real_escape_string($objData[0]->token, $link);
else if(isset($_GET['uid']))
    $uid = mysql_real_escape_string($_GET['uid']);
else
    $txt += 1;

$outp ='{"records":[{"ID":"' . $objData->token . '"}]}';
echo($outp);

?>

我收到了error_log消息

  

[2016年3月18日21:40:40 America / Denver] PHP注意:试图获得   /home/sample.php中非对象的属性

我尝试了$objData->token$objData->token[0]。但是我得到了同样的错误通知。请帮助我...

我尝试了帖子Notice: Trying to get property of non-object error中提供的解决方案,但它失败了,我为此帖子筹集了50点赏金积分。我试图在帖子问题https://stackoverflow.com/review/suggested-edits/11690848中更新我的要求,但编辑被拒绝,所以我将我的要求作为新问题发布。请帮助我...

2 个答案:

答案 0 :(得分:0)

$ objData似乎不是一个对象。

尝试$ objData ['token']。

或者回显对象$ objData并尝试弄清楚它的结构是什么。

答案 1 :(得分:0)

AngularJS没有发送任何Object而是传递GET元素。

只需使用$_GET['uid']

即可访问该值