>  기사  >  웹 프론트엔드  >  jQuery.ajax를 사용하여 Node.js에서 JSON을 가져올 때 \"예기치 않은 토큰:\" 오류를 해결하는 방법은 무엇입니까?

jQuery.ajax를 사용하여 Node.js에서 JSON을 가져올 때 \"예기치 않은 토큰:\" 오류를 해결하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-19 22:53:01628검색

How to Resolve the

jQuery.ajax#get의 예기치 않은 토큰 콜론 JSON

문제:

사용 시 jQuery.ajax#get을 사용하여 Node.js API에서 JSON 데이터를 검색하면 Chrome에서 "예기치 않은 토큰:" 오류가 발생합니다.

컨텍스트:

  • 서버측 코드: Node.js Express 서버는 {"이름":"Tom","설명":"안녕하세요!"} 형식으로 JSON 데이터를 반환합니다.
  • 클라이언트 측 코드: JSON 데이터를 검색하기 위해 jQuery 스크립트에서 AJAX 가져오기 요청이 이루어집니다.

조사:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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