2013-09-03 2 views
-4

누구든지이 문제가 무엇인지 알 수 있습니까? jquery ajax call (2)

<div id="div1">Test Page</div> 

내가 전화를하고, 그리고 난 오류가 점점 오전

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script> 
$(document).ready(function() { 
    var url = 'http://www.google.com/ig/calculator?hl=en&q=100INR=?USD'; 
    var title = "jQuery"; 

    $.getJSON("http://www.google.com/ig/calculator?hl=en&q=100INR=?USD" + "&format=json&callback=?", function(data) { 
     alert(data); 
    }); 
}); 

. 왜 그런지 알아? URL에 아약스 전화를 걸려면 어떻게합니까? http://www.google.com/ig/calculator?hl=en&q=100INR=?USD

+5

오류 메시지가 무엇입니까? –

+0

그 오류는 ... 우리가 도울 필요가있는 정보에 있습니다! (SOP tho를 추측 할 것입니다.) – tymeJV

+1

URL은 JSONP가 아니라 JSON을 반환합니다. 그러나 당신은 jQuery에게'callback =? '을 사용하여 JSONP를 기대한다고 말하고있다. 결과적으로 응답은 JSONP의 JavaScript로 평가되지만 JSON은 유효한 JavaScript 스크립트가 아니므로 오류가 발생합니다. –

답변

0

AJAX는 크로스 도메인을 호출 할 수 없습니다. 교차 도메인으로 작동 시키려면 JSONP과 같은 것을 사용해야합니다.

jQuery의 $.ajax 메소드는 JSONP 요청을 지원합니다. Google API가 JSONP 스타일 응답을 지원하지 않으면 운이 없어진 것입니다. @FelixKling에서 제안한대로 프록시를 사용하는 것이 다른 옵션입니다.

+2

'$ .getJSON'은'callback =?'을 URL에 추가 할 때 "JSONP 요청"도 생성합니다 . 문제는 URL이 JSONP를 반환하지 않는다는 것입니다. JSONP를 "사용"할 수는 없으며 서버 측에서 JSONP를 지원해야합니다. –

+0

당신은 내게 그 코드를 제공 할 수 있습니까 – Anirban

+0

@Anirban : 내 코멘트를 읽었습니까? * *는 이미 JSONP를 사용하려고 시도하지만 JSONP는 API에서 지원되지 않으므로 사용할 수 없습니다. 유일한 해결책은 서버 또는 CORS 지원 외부 프록시를 통해 요청을 프록시하는 것입니다. –