JS 調(diào)試中常見的報(bào)錯(cuò)問題解決方法
報(bào)錯(cuò):Uncaught SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at Function.m.parseJSON (jquery.js:8515)
at Object.success (crud.html:45)
at j (jquery.js:3143)
at Object.fireWith [as resolveWith] (jquery.js:3255)
at x (jquery.js:9309)
at XMLHttpRequest.b (jquery.js:9713)
(翻譯:不能捕獲的語法錯(cuò)誤:json數(shù)據(jù)位置0處發(fā)現(xiàn)不能識(shí)別的標(biāo)記<)
原因:json格式錯(cuò)誤
返回?cái)?shù)據(jù) 語句用echo json_encode($data,true);但是用了echo json_decode($data);
由于函數(shù)使用不對(duì),返回的data不是json數(shù)據(jù),第一個(gè)字符是“ <”,所以報(bào)錯(cuò)Unexpected token < in JSON at position 0(翻譯:json數(shù)據(jù)位置0處發(fā)現(xiàn)不能識(shí)別的標(biāo)記<);
如果使用 $.ajax({})而不是 $.get() 區(qū)別: 當(dāng)使用 $.ajax 時(shí),php返回的 JSON字符串已經(jīng)被 ajax 中的屬性 dataType 將請求的參數(shù)類型要求為String類型(dataType:'json')返回為 JSON對(duì)象,不需要再次轉(zhuǎn)換;當(dāng)使用 $.get 時(shí),服務(wù)器返回的數(shù)據(jù)格式為原始的字符串?dāng)?shù)組,因此,需要將返回的字符串轉(zhuǎn)換為數(shù)組,使用 JSON.parse(jsonString) ,將JSON字符串解析為JSON對(duì)象;
json教程見:http://www.w3school.com.cn/json/index.asp
解決辦法:
修改為echo json_encode($data,true);
將php的代碼調(diào)試代碼 echo()去掉,就不會(huì)再報(bào)這樣的錯(cuò)誤了:
$json = json_encode(array(
"resultCode"=>200,
"message"=>"查詢成功!",
"data"=>$data
),JSON_UNESCAPED_UNICODE);
//注釋掉
/*echo($json);*/
如果使用 $.ajax 時(shí),不需要注釋
//不需要注釋 echo($json);
如果不是該問題,請檢查php文件給返回的data數(shù)據(jù),是否標(biāo)準(zhǔn)json格式。如果php文件中有var_dump、echo、注釋等,都會(huì)對(duì)返回的json數(shù)據(jù)有影響。
以上這篇JS 調(diào)試中常見的報(bào)錯(cuò)問題解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于ES6尾調(diào)用優(yōu)化的使用
這篇文章主要介紹了關(guān)于ES6尾調(diào)用優(yōu)化的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
詳解JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換
在JavaScript中,數(shù)據(jù)類型的轉(zhuǎn)換是一項(xiàng)常見的任務(wù),不同的數(shù)據(jù)類型之間需要相互轉(zhuǎn)換以滿足程序的需求,本篇博客將深入探討JavaScript中的數(shù)據(jù)類型轉(zhuǎn)換,包括隱式轉(zhuǎn)換和顯式轉(zhuǎn)換的概念、轉(zhuǎn)換規(guī)則和常見的數(shù)據(jù)類型轉(zhuǎn)換示例2023-06-06
前端頁面在移動(dòng)設(shè)備上顯示不正常的原因及解決方案
當(dāng)頁面在移動(dòng)設(shè)備上顯示不正常時(shí),通常是由于布局、樣式或響應(yīng)式設(shè)計(jì)設(shè)置不當(dāng)所引起的,移動(dòng)設(shè)備的屏幕尺寸、分辨率和交互方式與桌面設(shè)備有很大的不同,本文將詳細(xì)介紹常見的導(dǎo)致頁面在移動(dòng)設(shè)備上顯示不正常的原因,以及如何解決這些問題,需要的朋友可以參考下2024-09-09
javascript完整操作Table的增加行,刪除行的列子大全
非常漂亮的js操作table行代碼函數(shù)。比較方便2008-10-10

