2017-04-05 2 views
0

이 질문은 나를 당황하게하고 있습니다. 여기 이야기가 있습니다. JSON 결과를 PHP 파일로 구성되어 다른 도메인 이름이 있습니다 : 는 http://www.otherdomain.com/token.php을 말할 수 있으며 생성합니다 :다른 도메인에 아약스하는 방법

{"token":"123455"} 

내가 얻을 주어진 응답에 역할을 mywebsite.com에서 아약스 싶습니다. 문제는 otherdomain.com이 (가) 내 소유가 아니기 때문에 내용을 수정할 수 없습니다.

그래서 내가 stackoverflow에 대한 몇 가지 답변을 검색하고 왜 이것이 작동하지 않는지 설명합니다.

  1. 은 CORS 헤더를 설정합니다. 도메인이 나 자신이 아니기 때문에 나는 그것에 대해 아무 것도 할 수 없다.

  2. 내 서버를 프록시로 사용하여 데이터를 요청하십시오. (이 기능은 몇 번만 사용할 수 있지만 내 사이트 방문자가 점점 더 많은 데이터가 단일 IP에서 내 서버의 사이트로 전송되어 403 오류가 발생할 수 있습니다.)

  3. 크롬이나 파이어 폭스에 플러그인. (이 웹 사이트를 사용하는 유일한 사람이면이 옵션을 사용할 수 있습니다.)

  4. JsonP를 사용하십시오. 그것은 jQuery getJSON works locally, but not cross domain에 표시되었지만 대답은 otherdomain.com 파일의 응답 데이터를 수정해야한다는 것을 보여줍니다. 도메인을 소유하고 있지 않기 때문에 아무 것도 할 수 없습니다.

+1

모든 기반을 다 커버하고 각 가능성을 제거한 것처럼 보입니다. 그 밖의 무엇을 말할지 모르겠습니다. 그들의 데이터이며 다른 사이트에서 쉽게 액세스 할 수 있도록하려는 경우 필요하지 않습니다. –

+2

다른 도메인에 도메인과 교차 출처 자원 공유를 허용하도록 요청하십시오. 다른 것은 그저 그늘진 관습 일뿐입니다. – apokryfos

+0

JSONP가 작동하지 않으면 운이 없어진 것입니다. – Tom

답변

0

귀하는 옵션 번호 4를 올바르게 사용할 수 없습니다. jsonp는 특히 도메인 간 요청을 위해 만들어졌습니다. 그래서, jsonp가 당신의 솔루션입니다. 구글 맵스 나 다른 서비스를 살펴 본다면 jsonp 예제가 작동합니다.