상황에 따라 다르다. 당신이 b.com
말에 있고 웹 서비스가있는 경우, 그러나
$.ajax('path-to-your-service/WebMethodName', data, function(r){
// Success callback, you have your answer in r.d object
}, function(e){
// Error callback
});
: 당신이 도메인 a.com
에 말을하고 웹 서비스도 같은 장소에있는 경우에, 당신은이 방법을 간단하게 할 수 있습니다 a.com
이면 Same-Domain Policy이라는 개념으로 제한됩니다. 즉, 특정 규칙을 따르지 않으면 AJAX 호출 (또는 XMLHttpRequest)을 사용하여 웹 서비스에서 데이터를 가져올 수 없습니다. 하나는 Access-Control-Allow-Origin HTTP 헤더 필드입니다. 일부 브라우저 간 문제가 있습니다. 또 다른 방법은 JSONP을 사용하는 것입니다. 서버를 지원해야합니다.
JSONP를 사용하려면 jQuery의 $.getJSON()
메소드를 사용해야하며 HTTP GET을 통해 전송 된 매개 변수와 함께 콜백 쿼리 문자열 키를 제공해야합니다. ,
$.getJSON('path-to-your-service?x=some&y=thing?callback?', function(r){
// Success callback. Your JSON object would be the r parameter
});
나는 당신이 웹 서비스의 창조자 경우, JSONP를 사용하는 것이 좋습니다, 당신은 .NET 프레임 워크를 사용하는 경우, 나는 또한 당신이 단순히 대신 웹 서비스의 일반 처리기 사용하는 것이 좋습니다 웹 서비스를 구성하는 데 많은 문제가 발생했기 때문입니다. 그러나, 서버 코드에서, 당신은 콜백라는 쿼리 문자열 키에 대한 들어오는 GET 요청을 확인해야하고, 만약 존재한다면, 당신은 당신이 함수 내에서 이런 식으로 JSON을 반환 포장해야합니다
callback({
a: a1,
b: b1,
c: c1
});
이해 JSONP를 (개념과 발생 방식)은 매우 중요합니다. 깊은 이해 없이는 미래의 유지 보수가 막대한 부담이 될 것입니다. 나는 this 질문을 읽을 것을 제안합니다.
아니, 지금은 다른 도메인에 대한 호출입니다. – xybrek