2015-01-09 1 views
0

내 사이트 foo.com에서 bar.com의 API에 액세스하려고합니다. Bar.com은 CORS를 허용하지 않으며 JSONP를 공식적으로 지원하는지 모르겠습니다.JSONP로 API에 액세스 할 수 있습니까? 아니면 API가 특별히 지원해야합니까?

jQuery를 사용하여 JSONP를 통해 API에 계속 액세스 할 수 있습니까? 아니면 사이트에서 명시 적으로 지원해야합니까? 크롬에서

$.ajax({ 
     url: 'https://api.example.com', 
     jsonp: 'callback', 
     dataType: 'jsonp', 
     data: { 
      'command' : 'abc', 
      'partnerName' : 'def', 
      'partnerPassword' : 'ghi', 
      'partnerUserID' : 'jkl', 
      'partnerUserSecret' : 'mnop' 
     }, 
     error: function (response) { 
      console.log(response); 
      return false; 
     }, 
     success: function (response) { 
      console.log(response); 
      return false; 
     } 
    }); 
}, 

내가 얻을 :

참고이 내 AJAX 요청입니다

Uncaught SyntaxError: Unexpected token : 
+3

사이트가 제대로 작동하려면 사이트에서이를 지원해야합니다. –

답변

2

무엇 JSONP가하는 것은 API 엔드 포인트에서 오는 코드를 평가하는 시도입니다 때문입니다. 오유는 속성을 정의

callback({"result": "OK"}) 

: 호출의 결과, 이제 JSONP 작업을 만들기 위해, 다음

{"result": "OK"} 

을 가정 해 봅시다 경우

, 서버는 그 방법으로 응답했다 ayax 호출에서 jsonpcallback으로 설정하십시오.

+0

흠 ... 실제 문제는 API가 JSONP를 지원하지 않는다는 것입니다. –

+2

@JustinCloud : 네, 그게 요점입니다. :) 그리고 내 대답은 왜이 지원이 필요한지 설명합니다 :) – andrusieczko