jQuery.ajax#get의 예기치 않은 토큰 콜론 JSON
문제:
사용 시 jQuery.ajax#get을 사용하여 Node.js API에서 JSON 데이터를 검색하면 Chrome에서 "예기치 않은 토큰:" 오류가 발생합니다.
컨텍스트:
조사:
Chrome에서 오류를 조사한 결과 JSON 응답에 예기치 않은 콜론(:)이 포함되어 있는 것으로 나타났습니다.
해결책:
JSONP 지원 활성화:
클라이언트가 JavaScript 함수 호출에 래핑된 JSON 데이터인 JSONP 응답을 기대하기 때문에 문제가 발생합니다. JSONP 지원을 활성화하려면 서버가 응답에 "패딩"("P")을 포함해야 합니다.
<code class="text">jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})</code>
서버 측 코드 수정:
Node.js Express에서 JSONP를 지원하려면 다음과 같이 서버 코드를 수정하세요.
const express = require('express'); const app = express(); app.get('/', (req, res) => { const callback = req.query.callback; const data = { Name: "Tom", Description: "Hello it's me!" }; if (callback) { res.setHeader('Content-Type', 'text/javascript'); res.end(callback + '(' + JSON.stringify(data) + ')'); } else { res.json(data); } });
또는:
ExpressJS에 내장된 res.jsonp() 메서드를 사용하세요.
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.jsonp({ Name: "Tom", Description: "Hello it's me!" }); });
클라이언트측 코드 수정:
클라이언트측에서는 수정이 필요하지 않습니다. 기본적으로 jQuery는 함수 이름과 함께 콜백 쿼리 문자열 매개변수를 전달합니다.
위 내용은 jQuery.ajax를 사용하여 Node.js에서 JSON을 가져올 때 '예기치 않은 토큰:' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!