>  기사  >  웹 프론트엔드  >  jQuery.ajax#get을 사용하여 JSONP 요청에서 \"예기치 않은 토큰 콜론\" 오류를 해결하는 방법은 무엇입니까?

jQuery.ajax#get을 사용하여 JSONP 요청에서 \"예기치 않은 토큰 콜론\" 오류를 해결하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-19 22:54:021079검색

How to Resolve

예기치 않은 토큰 콜론: jQuery.ajax에서 JSONP 오류 해결#get

jQuery.ajax에서 "예기치 않은 토큰 콜론" 오류가 발생하는 경우 #get, JSONP(JSON with Padding) 요청의 특성을 이해하는 것이 중요합니다. JSONP에는 JSON 데이터를 클라이언트 측의 전역 JavaScript 함수 호출로 다시 보내는 작업이 포함됩니다.

JSONP를 지원하려면 서버가 응답에 "패딩"을 포함해야 합니다. "패딩"은 콜백 함수 이름과 괄호로 묶인 JSON 데이터로 구성됩니다.

jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})

이 예에서 콜백 함수 이름은 jQuery111108398571682628244_1403193212453입니다. 이 오류는 JavaScript가 JSONP를 JavaScript로 구문 분석하기 때문에 발생합니다. 여기서 {...}도 블록을 나타냅니다.

이 오류를 수정하려면 서버가 응답에 "Padding"을 포함해야 합니다. 또한 jQuery에는 일반적으로 함수 이름과 함께 콜백 쿼리 문자열 매개 변수가 포함됩니다. 이를 수용하기 위해 서버 코드는 조건문을 사용하여 콜백 매개변수를 확인하고 그에 따라 응답을 보낼 수 있습니다.

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);
}

또는 ExpressJS는 이미 이 조건을 처리하는 res.jsonp() 메서드를 제공합니다. JSONP 응답 반환을 더 쉽게 만듭니다:

app.get( '/', function( req, res ) {
    console.log( 'req received' );

    res.jsonp({
        Name : "Tom",
        Description : "Hello it's me!"
    });
});

위 내용은 jQuery.ajax#get을 사용하여 JSONP 요청에서 \"예기치 않은 토큰 콜론\" 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.