2016-09-14 226 views
4

這是我的角碼。形式提交代碼。當點擊提交按鈕。 JSON Parse error: Unrecognized token '<'此錯誤將顯示。空記錄將保存在數據庫中。我也爲此添加了html代碼和PHP服務器端代碼。JSON解析錯誤:無法識別的令牌'<'處於角度

$scope.submitForm = function() { 

    $http({ 
     method : 'POST', 
     url  : 'http://localhost/youtubewebservice/checkOutt.php', 
     data : $scope.user, 
     dataType: 'json', 
     headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
    }) 
     .success(function(data) { 
     if (data.errors) { 
      $scope.errorinputFName = data.errors.inputFName; 
      $scope.errorinputLName = data.errors.inputLName; 
     } 
     }); 
    }; 

HTML代碼

<form name="userForm" ng-submit="submitForm()"> 
<div class="form-group"> 
    <label>Name</label> 
    <input type="text" name="inputFName" class="form-control" ng-model="user.inputFName"> 
    <span ng-show="errorName">{{errorName}}</span> 
</div> 
<div class="form-group"> 
    <label>Email</label> 
    <input type="text" name="inputLName" class="form-control" ng-model="user.inputLName"> 
    <span ng-show="errorEmail">{{errorEmail}}</span> 
</div> 

<button type="submit" class="btn btn-primary">Submit</button> 
     <div id="sendmessageresponse"></div> 
</form> 

** PHP代碼**

header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json;charset=UTF-8"); 

$data = json_decode(file_get_contents("php://input")); 
$inputFName = mysql_real_escape_string($data->inputFName); 
$inputLName = mysql_real_escape_string($data->inputLName); 

$con = mysql_connect('localhost', 'root', ''); 
mysql_select_db('look4com_lk', $con); 

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


if ($res['cnt'] == 0) { 
    $qry = 'INSERT INTO checkout (inputFName,inputLName) values ("' . $inputFName . '","' . $inputLName . '")'; 
    $qry_res = mysql_query($qry); 
    if ($qry_res) { 
     $arr = array('msg' => "User Created Successfully!!!", 'error' => ''); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } else { 
     $arr = array('msg' => "", 'error' => 'Error In inserting record'); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } 
} else { 
    $arr = array('msg' => "", 'error' => 'User Already exists with same email'); 
    $jsn = json_encode($arr); 
    print_r($jsn); 
} 
+0

檢查什麼正在通過發送到服務器提琴手 – Sajeetharan

+0

沒有問題。 – moni123

+0

粘貼正在發送的json的輸出。 – Samar

回答

1

此特定分析錯誤指示輸出是沒有有效的JSON(杜)。由於你的輸出格式爲json_encode,它應該是。 (雖然我通常使用print_r數組只...)但是...

我的經驗告訴我,你的服務器產生一個錯誤/通知的PHP通常與一些HTML輸出,因此<。既然你聲稱,響應是乾淨的JSON,我建議你看看你的服務器發送的實際響應。我的假設是,你測試了你的php腳本從命令行(因此php://input?),但一個服務器可能處理請求不同於你所期望的。

您可以在幾乎所有體面的瀏覽器(通常是F12 - >網絡選項卡)的網絡選項卡中檢查服務器的響應,然後重新加載和/或重新發送表單。如果您在解決php問題時遇到問題,請將php錯誤消息添加到您的問題中,或者詢問一個新問題。

作爲最後一句話:請避免使用mysql_*函數(不建議使用的mysql庫)並使用mysqli_*函數(mysqli庫)或PDO。還使用準備好的語句。

+0

我改變了'json_encode'和'mysqli_',但同樣的錯誤。我有 – moni123

+0

@DRK我有感覺你只讀了第一段和最後一段。你的評論似乎也被切斷了。 – Jakumi

+0

第二段也是我做的。然後空記錄不工作 – moni123

-1

我發現了這段代碼的錯誤。此代碼正常工作。任何人有任何問題要問。感謝

HTML代碼

<div ng-controller="ProductController"> 
<form name="userForm" ng-submit="submitForm()"> 
<div class="form-group"> 
    <label>Name</label> 
    <input type="text" name="inputFName" class="form-control" ng-model="user.inputFName"> 
    <span ng-show="errorName">{{errorName}}</span> 
</div> 
<div class="form-group"> 
    <label>Email</label> 
    <input type="text" name="inputLName" class="form-control" ng-model="user.inputLName"> 
    <span ng-show="errorEmail">{{errorEmail}}</span> 
</div> 

<button type="submit" class="btn btn-primary">Submit</button> 
     <div id="sendmessageresponse"></div> 
</form> 
    </div> 

** PHP代碼**

$data = json_decode(file_get_contents("php://input")); 
$inputFName = mysql_real_escape_string($data->inputFName); 
$inputLName = mysql_real_escape_string($data->inputLName); 



//localhost 
$con = mysql_connect('localhost', 'root', ''); 
mysql_select_db('look4com_lk', $con); 

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



if ($res['cnt'] == 0) { 
    $qry = 'INSERT INTO checkout (inputFName,inputLName) values ("' . $inputFName . '","' . $inputLName . '")'; 
    $qry_res = mysql_query($qry); 
    if ($qry_res) { 
     $arr = array('msg' => "User Created Successfully!!!", 'error' => ''); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } else { 
     $arr = array('msg' => "", 'error' => 'Error In inserting record'); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } 
} else { 
    $arr = array('msg' => "", 'error' => 'User Already exists with same email'); 
    $jsn = json_encode($arr); 
    print_r($jsn); 
} 

**控制器代碼**

$scope.submitForm = function() { 
    // Posting data to php file 
    $http({ 
     method : 'POST', 
     url  : 'http://localhost/youtubewebservice/checkOutt.php', 
     data : $scope.user, //forms user object 
     headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
    }) 
     .success(function(data) { 
     if (data.errors) { 
      // Showing errors. 

      $scope.errorinputFName = data.errors.inputFName; 
      $scope.errorinputLName = data.errors.inputLName; 
      //$scope.errorMessage = data.errors.Message; 
     } else { 
      $scope.contactmessage = data.contactmessage; 

     //data: {Name: $scope.Name, Email: $scope.Email, Message: $scope.Message} 
     } 


     }); 
    }; 
相關問題