解決jQuery.ajax#get 中的「意外令牌冒號JSON」錯誤
在嘗試從簡約API 檢索JSON 資料時當當您在Node.js 中建立時,您在Chrome 中遇到了「Unexpected token :」錯誤。此錯誤通常是由於伺服器的預期 JSON 回應與實際 JSON 回應不符而發生。
使用 jQuery.ajax#get 進行 AJAX 呼叫並將 dataType 指定為 'jsonp' 時,伺服器回應需要「填充」(P) 以支援 JSONP 請求。 JSONP 是一種透過將 JSON 資料包裝在函數呼叫中來允許跨域請求的技術。
要解決此問題,您需要修改伺服器端程式碼以在回應中包含填充。在Node.js 程式碼中,新增以下行:
var callback = req.query.callback; var data = JSON.stringify({ Name : "Tom", Description : "Hello it's me!" }); if (callback) { res.setHeader('Content-Type', 'text/javascript'); res.end(callback + '(' + data + ')'); } else { res.setHeader('Content-Type', 'application/json'); res.end(data); }
或者,如果您使用的是Express.js,則可以使用res.jsonp() 方法,該方法會自動處理新增填充:
app.get( '/', function( req, res ) { console.log( 'req received' ); res.jsonp({ Name : "Tom", Description : "Hello it's me!" }); });
透過這些修改,伺服器將發送封裝在函數呼叫中的JSONP 回應,該回應可以由jQuery.ajax#get 解析,而不會遇到「意外令牌」錯誤。
以上是如何修復 jQuery.ajax#get 中的「意外令牌冒號 JSON」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!