programing

jQuery를 사용하여 다른 포트로 AJAX 요청을 전송하려면 어떻게 해야 합니까?

javajsp 2023. 3. 15. 19:18

jQuery를 사용하여 다른 포트로 AJAX 요청을 전송하려면 어떻게 해야 합니까?

예를 들어 데몬이 실행되고 있는 포트 8080으로 AJAX 요청을 보내야 합니다.

이것에 의해, 같은 발신기지 정책이 위반됩니다.같은 도메인을 사용하는 경우에도 다른 포트를 사용할 수 없습니다.

더그가 제안한 대로 JSONP를 사용할 수 있습니다.

또는 Apache에 있는 경우 mod_proxy를 사용하여 매우 간단한 역방향 프록시를 설정할 수도 있습니다.이를 통해 AJAX 요청에서 상대 경로를 사용할 수 있으며 HTTP 서버는 "원격" 위치에 대한 프록시 역할을 합니다.

mod_proxy에서 리버스 프록시를 설정하기 위한 기본 설정 디렉티브는 ProxyPass입니다.일반적으로 다음과 같이 사용합니다.

ProxyPass     /ajax/     http://www.localhost:8080/

이 경우, 당신은 다음과 같이 요청해야 합니다./ajax/test.xmljQuery를 사용하는데, 실제로는 서버가 프록시로서 이 서비스를 제공합니다.http://www.localhost:8080/test.xml내부적으로

IIS를 사용하는 경우 Managed Fusion URL Rewriter Reverse Proxy를 사용하여 역방향 프록시를 설정할 수 있습니다.

할 수 없다POST도메인 간, 서브 도메인 간 또는 포트 번호 간 정보.단, 데몬과 요청 사이트 모두에 액세스할 수 있는 경우에는 JSONP를 사용할 수 있습니다.데이터를 반환해야 할 경우daemon서포트할 필요가 있다callback매개 변수를 쿼리하고 올바른 형식으로 반환합니다.

데몬에 정보를 전달합니다.

$.getJSON('http://domain.com:8080/url/here?callback=?', {
  key: 'value',
  otherKey: 'otherValue'
}, function(data){
     // Handles the callback when the data returns
});

이제 데몬이 처리하는지 확인하세요.callback파라미터를 지정합니다.예를 들어, 만약callback=mycallback데몬으로부터의 반환(페이지에 기입된 유일한 것)은 다음과 같습니다.

키/값 쌍의 경우:

mycallback( {'returnkey':'returnvalue', 'other':'data' });

어레이의 경우:

mycallback( [1,2,3] );

JSONP 또는 유사한 메커니즘이 없는 경우 jQuery를 사용하여 도메인 간에 통신할 수 없습니다.

이것은, 같은 박스에 다른 포토에 격납되어 있어도, 다른 송신원으로서 카운트 됩니다.

FireFox 3.5 이상과 같은 새로운 브라우저를 주로 대상으로 하고 있다면,Access-Control다른 포트의 응용 프로그램에 대한 헤더를 지정하고 기본 응용 프로그램 풀에서 호출을 허용합니다.액세스 컨트롤 헤더에 대한 정보는 https://developer.mozilla.org/en/HTTP_access_control 에서 확인할 수 있습니다.

IE에서도 구현됩니다(다른 ACTIVEX 컨트롤을 사용하는 경우, 왜 구현됩니까).: http://blogs.msdn.com/ie/archive/2009/01/14/completing-access-control-support-for-xdomainrequest.aspx 및 http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx

언급URL : https://stackoverflow.com/questions/2099728/how-do-i-send-an-ajax-request-on-a-different-port-with-jquery