SyntaxError:意外的令牌< at Object.parse(native)

时间:2016-02-23 10:51:08

标签: php mysql angularjs rest ionic-framework

我刚创建了一个离子应用程序,它只有一个注册页面。我正在做的是在后端使用php RESTful Web服务,而MySql是数据库。但是我收到了这个错误:"语法错误:意外的令牌< &#34 ;.我不知道如何解决这个错误。请指导我解决这类错误。

我的index.html是:

<ion-content class="has-header" ng-controller="SignupCtrl">
    <div class="list list-inset">

   <label class="item item-input">
     <input class="form-control" type="text" ng-model="userdata.username" placeholder="Enter Username">
   </label>

   <label class="item item-input">
     <input type="text" ng-model="userdata.email" placeholder="Enter Your Email">
   </label>

   <label class="item item-input">
     <input class="form-control" type="password" ng-model="userdata.password" placeholder="Enter Your Password">
   </label>

   <button class="button button-block button-positive" ng-click="signup(userdata)">SignUp</button><br>
   <span>{{responseMessage}}</span>
 </div>
</ion-content>

我的控制器代码是:

.controller('SignupCtrl', function($scope, $http) {
$scope.signup = function (userdata) {
    var request = $http({
        method: "POST",
        url: "http://localhost/lastLog.php",
        crossDomain : true,
        data: {
            email: userdata.email,
            password: userdata.password,
            username: userdata.username
        },
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    });
    /* Successful HTTP post request or not */
    request.success(function(data) {
        if(data == "1"){
         $scope.responseMessage = "Successfully Created Account";
        }
        if(data == "2"){
         $scope.responseMessage = "Create Account failed";
        }
        else if(data == "0") {
         $scope.responseMessage = "Email Already Exist"
        }  
    });
 }
})

我的PHP代码是:

<?php
    header("Content-Type: application/json; charset=UTF-8");
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST');

    $postdata = file_get_contents("php://input");
    $request = json_decode($postdata);
    $email = $postdata->email;
    $password = $postdata->password;
    $username = $postdata->username;

    $con = mysql_connect("localhost","root",'') or die ("Could not connect: " . mysql_error());;
    mysql_select_db('db_lastLog', $con);

    $qry_em = 'select count(*) as cnt from users where email ="' . $email . '"';
    $qry_res = mysql_query($qry_em);
    $res = mysql_fetch_assoc($qry_res);

    if($res['cnt']==0){
    $qry = 'INSERT INTO users (name,pass,email) values ("' . $username . '","' . $password . '","' . $email . '")';
    $qry_res = mysql_query($qry);
        if ($qry_res) {
            echo "1";
        } else {
            echo "2";;
        }
    }
    else
    {
        echo "0";
    }
?>

1 个答案:

答案 0 :(得分:1)

SyntaxError: Unexpected token <通常意味着您的JSON响应中存在错误,因为错误的位置在fromJson (angular.fromJson)中,这意味着它无法解析JSON响应。如果您在控制台中打开network选项卡并检查请求,则响应可能以<开头,一旦您修复此错误/ json它应该正常工作