2009-04-08 3 views
2

나는 can jquery ajax call external webservice?jquery "jsonp"를 사용하여 외부 웹 서비스를 호출하는 방법은 무엇입니까?


과 좋은 개발자가 나를 JSONP 사용 대답 이전 질문을했다,하지만 난이 코드를 사용하여 내 서비스를 호출하는 것을 시도하고 그것을 사용하는 방법을 모른다 :

$.ajax({ 
      type: "POST", 
      url: "http://localhost:1096/MySite/WebService.asmx?callback=?", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "jsonp", 
      success: function(msg) {alert(msg);} 
      }); 


이 내 서비스 코드 :

[WebMethod] 
public string HelloWorld() { 
    return "Hello World " ; 
} 


누구나 예제가 있거나 나에게이 문제를 설명 할 수 있습니까?

UPDATE :

$.getJSON("http://localhost:1096/YourShoppingTest1/WebService.asmx/HelloWorld?jsonp=?",{name:"test"}, 
    function(data){ 
    alert(data.x); 
    }); 


이 같은 서비스 :

[WebMethod] 
public string HelloWorld(string name) 
{ 
    return "({\"x\":10 , \"y\":100})"; 
} 


그러나 그것을
나는 이렇게 될 코드를 다시 썼다 항상 내게이 오류를 줘. 뒤로 : "실종. 문 전에 [이 오류에 브레이크] ({ "X": 10, "Y": 100}) "

결코 누군가는 도움을 줄 수, 성공의 함수를 호출 나 '

+0

왜 다른 질문에 대한 답을 받아들였습니까? 계속 질문을하고 그 실을 따라야합니다. – Seb

+0

그들이이 방법으로 나를 대답했기 때문에 : $ .getJSON은 작동하지만 $ .ajax를 사용하는 다른 방법을 묻습니다. –

답변

2

? 비슷한 문제를 했어, 불행히도 나는 손 코드가없는 메모리에서

:.

참조 같은
뭔가 : (<script src="..."> 리소스를 얻을 수 있기 때문에) What are some good examples of JQuery using JSONP talking to .net? & What is the best way to call a .net webservice using jquery?

0

는 당신은 GET, JSONP를 사용하여 POST 요청을 발행 할 수 없습니다.

-1

먼저 잊지 마세요, $ _GET [ '콜백']

두 번째와 같은 웹 서버에서 JSONP ('콜백')를 추가해야한다 ';' 문제가 발생하며 "문 전 실종"왜 출력 스크립트 후

$data = '{"name" : "hello world"}'; 
echo $_GET['jsoncallback'] . '(' . $data . ');'; 

이제 알 수 있습니다.

HTML :

$.getJSON({"http://localhost:1096/MySite/WebService.asmx?callback=?", 
     function(data){alert(data);} 
     }); 
0

Hezil의 코드는 나를 위해 일한,하지만이 서버 코드를 변경 한 다음 대신 "jsoncallback"의 "콜백"

$data = '{"name" : "hello world"}'; echo $_GET['callback'] . '(' . $data . ');'; 

참고.

2

JSONP의 요점은 P! P를 패딩으로. 함수 호출로 JSON 객체 리터럴을 채우고 있습니다. 호출 페이지에서 데이터 객체를 인수로 취하는 함수를 호출합니다.

e.e. 당신이 웹 서비스를 요청하는 경우, (적절한 MIME 타입을 사용)

...service/?callback=hello 

그런 다음 서비스가 대답해야 쿼리 문자열에서 원하는 콜백 함수 이름을 보내

hello({a: 17, b: 4117}); 

을 좀 더 깊이있는 설명은, 참조 : http://www.stpe.se/2008/10/cross-site-data-retrieval-using-jsonp/

관련 문제