2013-04-12 3 views
0
내가 응용 프로그램에 응용 프로그램 및 (불행하게도 다른 도메인에) 서버

도메인 간 JQuery와 아약스 JSONP

모두를 짓고 있어요

내가 가진 :

$.ajax({ 
    url: BASE_URL + "api/create", 
    type: "get", 
    async: false, // why do I need this 
    dataType: "jsonp", 
    data: { 
    "auth_token": "cBQHASwKszsW4e75unK6" 
    }, 
    error: function(error) { 
    alert(JSON.stringify(error)); 
    }, 
    success: function(data) { 
    alert(data); 
    } 
}); 

I는 서버가 반환하는 것을 알고있다 (내가) 브라우저에서 갈 때 :

jQuery1910041686943266540766_1365730282085({"error":"User does not exist","status":400}) 

을 (올바른 데이터 인)

그러나, 아약스 요청이 실패 상태로 표시됩니다

가 나는 또한 시도 여기


을 무슨 일이 일어나고 있는지 확실하지 않다 "보류" "실패"입력 :

$.getJSON(BASE_URL + "api/create?auth_token=cBQHASwKszsW4e75unK6&callback=?", function(data) { 
    alert(JSON.stringify(data)); 
}); 

을하는 또한 실패했습니다

+1

콜백 함수 var를 지정하지 않고'jQuery1910041686 ... '을 얻었습니까? 'Firebug'의'Net' 탭에있는 주소는 무엇입니까? – Narek

+0

'async'는 내가 아는 한 jsonp에 대해 false가 될 수 없습니다. 그것은 당신의 문제와 관련이 있다고는 말하지 않지만, 크로스 도메인 jsonp 요청은 스크립트 태그를 추가하고 그것은 async입니다. –

+0

localhost : 3000/api/create? callback = jQuery19101939692951273173_1365751304024 & auth_token = cBQHASwKszsW4e75unK - 첫 번째 질문에 대답하기 위해 콜백 인수가 분명히 jquery에 의해 추가됩니다. – Shazam

답변

-1

이 경우 프록시 페이지를 작성해야합니다. 예 : proxy.php 요청이 직접

는 U 작동 알 수 있습니다 아약스를 통해 proxy.php 전화 호출

.

단계 : 1. 새 페이지 proxy.php를 만듭니다. 2. CURL 또는 File_get_contents를 사용하여 외부 URL에서 데이터를 가져옵니다. 3. 도메인 간 URL 대신 ajax를 통해 proxy.php를 호출하십시오.

+1

페이지 호출 방법을 이해하지 못합니다. proxy.php가 도움이 될 것입니다 – Shazam

+0

@ anaz plz check @Shazam을 업데이트했습니다 – deep2mail

+0

@ deep2mail - JSON-P를 사용하고 있습니다. 프록시를 사용할 필요가 없어야합니다. – Quentin