Laravel POSアプリケーションで顧客の詳細を取得しようとしています。私は顧客のセル番号をAJAX経由で送信し、コントローラから詳細を返送しています。これまでサーバーから返されたデータにJSON.parseを適用しようとしています。JSON.parse Throwing Uncaught SyntaxError:JSONの位置0で予期しないトークンが発生する
Uncaught SyntaxError: Unexpected token s in JSON at position 0
私のコードではエラーが見つかりません。私は正常に動作するサーバーから正確に同じ方法で製品を検索しました。
私のAjaxの機能
function customersearch(){
var token=$('input[name=_token]').val();
var baseUrl=document.getElementById("baseUrl").value;
var url=baseUrl+"/sales/searchcustomer";
var id=document.getElementById("customercell").value;
console.log(id);
$.ajax({
type: "GET",
headers: {'X-CSRF-TOKEN': token},
url:url,
data: {id:id},
datatype:'json',
success: function(data) {
var returndata =JSON.parse(data);
console.log(returndata);
var id=returndata[0].id;
if(id == "undefined") {
alert("No Customer found");
}
else {
document.getElementById("cname").value = returndata[0].fname;
document.getElementById("cid").value = returndata[0].id;
}
}
});
}
私のコントローラ機能:のvar_dump($の顧客)の
public function searchcustomer(Request $request){
$searchingkey = $request->input('id');
//var_dump($searchingkey);
$customer = DB::table('customers')
->where('cellno', $searchingkey)
->get(['id','fname']);
var_dump($customer);
if (count($customer) == 0) {
$data = "No data returned"; // empty result
}
else {
$data = $customer;
}
return json_encode($data);
}
対応ネットワークXHRで
以下の私のコードサンプルですarray(1) {
[0]=>
object(stdClass)#221 (2) {["id"]=>string(1) "1"
["fname"]=>string(5) "Ahnaf"}}
[{"id":"1","fname":"Ahnaf"}]
私はAjaxの機能で返されたデータにJSON.parseを適用いけないと同じようにデータ変数を印刷する場合:
array(1) {
[0]=>
object(stdClass)#221 (2) {
["id"]=>string(1) "1"
["fname"]=>string(5) "Ahnaf"
}
}
[{"id":"1","fname":"Ahnaf"}]
でなければなりませんあなたが受け取ったdata'変数 'のログを添付してくださいでしたサーバーから?クライアントが無効な応答を受信したように思えるからです。 –
私の編集を参照してください。クライアントはデータを受信しています。 – Ahnaf
最後のコードブロック(サーバーの応答)は無効なJSONなので、解析に失敗します。クライアントは提供された応答の最後の行のみを受け取る必要があります。 –