왜 다른 서버에서 URL을 사용하면 jQuery.ajax()에서 오류 메시지없이 오류가 발생합니까?URL이 다른 서버에서 온 경우 jQuery.ajax가 실패합니다
답변
그것을하기 때문에 XMLHttpRequests를위한 브라우저에서 구현 크로스 도메인 요청에 대한 제한의. JSONP를 형식으로 사용하여이 문제를 해결할 수 있습니다. 그렇지 않으면 요청에 대해 서버 측 프록시가 필요합니다. http://jquery.com
주에 ajax documentation에서 인용
: '스크립트'또는 'JSONP'는 데이터 형식 일 때 모든 (동일하지 도메인) 원격 요청이 GET으로 을 지정해야합니다 (그것 때문에 DOM 스크립트 태그를 사용하여 스크립트를로드합니다. XMLHttpRequest 객체가 필요한 Ajax 옵션 은 이러한 요청에 사용할 수 없습니다. 완료 및 성공 함수는 완료시 이 호출되지만 은 XHR 개체를받지 않습니다. beforeSend 및 dataFilter 함수는 이 호출되지 않습니다.
ajax() 메서드는 내부적으로 동일한 도메인 정책 http://en.wikipedia.org/wiki/Same_origin_policy을 따르는 XmlHttpRequest를 사용합니다. 대신 교차 도메인 호출을 위해 getJson() 메서드를 사용할 수 있습니다. 난이 도움이되기를 바랍니다
, 보그
동일 기원 정책 jQuery를이 허용하지 않을 경우 때문에. 가장 좋은 방법은 일부 프록시 서버 페이지를 사용하여 필요한 페이지를 얻는 것입니다. http://en.wikipedia.org/wiki/Cross-origin_resource_sharing으로
는 말한다 :
크로스 원산지 자원 공유 (CORS) 웹 페이지가 다른 도메인에 대한 XMLHttpRequests를 만들 수있는 메커니즘입니다. 1 이와 같은 "교차 도메인"요청은 동일한 출처 보안 정책에 따라 웹 브라우저에서 금지 될 수 있습니다. CORS는 브라우저와 서버가 교차 출격 요청을 허용할지 여부를 결정하기 위해 상호 작용할 수있는 방법을 정의합니다. 2 동일한 출처 요청 만 허용하는 것보다 강력하지만 모든 출처 크로스 요청을 허용하는 것보다 안전합니다.
은 PHP 들어 그것은 header() 함수를 사용하여 수행된다
<?php
header("Access-Control-Allow-Origin: http://example.com");
?>
CORS는 JSONP 패턴 현대 대안으로 사용될 수있다. JSONP는 GET 요청 방법 만 지원하지만 CORS는 다른 유형의 HTTP 요청도 지원합니다. CORS를 사용하면 웹 프로그래머가 일반 XMLHttpRequest를 사용하여 JSONP보다 나은 오류 처리를 지원할 수 있습니다. 반면 JSONP는 CORS 지원을 배제하는 레거시 브라우저에서 작동합니다.CORS는 대부분의 최신 웹 브라우저에서 지원됩니다. 또한 외부 사이트가 인 JSONP가 XSS 문제를 일으킬 수 있지만 CORS는 웹 사이트에서 에 대한 응답을 수동으로 구문 분석하여 보안을 보장합니다.
JSONP 또는 "JSON with padding"은 (는) JavaScript에서 사용되는 통신 기술입니다. 다른 도메인에있는 서버에서 데이터를 요청하는 방법을 제공합니다. 이는 동일한 출처 정책 인 이기 때문에 일반적인 웹 브라우저에서는 금지 된 것입니다.
이 AJAX.But 액세스 서버 측 처리에 사용할 수있는 경우 AJAX
- 1. jQuery.ajax가 Twitter에 성공적으로 호출되었지만 Firefox의 경우 null을 반환합니다.
- 2. 앵커 해시 다른 URL이
- 3. PHP 문자열에 URL이 포함되어있는 경우
- 4. jquery.ajax가 작동하지 않습니다.
- 5. 변경 사항이 다른 함수에서 온 경우 onchange 이벤트가 발생하지 않습니다.
- 6. URL이 존재하는 경우 Objective-c
- 7. 새 서버에서 Windows 인증에 대한 로그인이 실패합니다.
- 8. 공유 웹 서버에서 MySQL CREATE FUNCTION이 실패합니다.
- 9. IE7/8에서 jQuery.ajax가 작동하지 않습니다.
- 10. "서버에서 응답 없음"오류가 발생한 서버에서 Selenium 테스트가 실패합니다.
- 11. 필요한 플래그가없는 경우 컴파일이 실패합니다.
- 12. django URL reverse : 사용자 이름이 '.'인 경우 URL이 전환 될 때 실패합니다. literal in it
- 13. 다른 서버에서 cURL이 다르게 작동합니다.
- 14. 유효한 URL이 텍스트 영역에있는 경우 함수 호출
- 15. url이 너무 큰 경우 urllib 동결!
- 16. URL이 배열 인 경우 트리거가 토글됩니다.
- 17. URL이
- 18. Javascript - 앵커에 이름 속성이있는 경우 getElementById가 실패합니다.
- 19. jquery.ajax가 jquery.ajax 추가 요소에서 의심되는 인종 문제
- 20. 서버에서 영화를 재생할 때 일부 URL이 작동하지 않습니다. 왜?
- 21. 브라우저에서 서버에서 PDF를 임베드하는 경우
- 22. 다른 기능에서 온 마우스 오버를 트리거하려면 어떻게해야합니까?
- 23. URL이
- 24. URL이
- 25. URL이
- 26. 다른 서버에서 msi를 호출
- 27. 다른 서버에서 Android 푸시
- 28. 짧은 입력의 경우 작동하고 긴 입력의 경우 실패합니다. 해결 방법?
- 29. bash : 루트가 스크립트를 실행하지 않는 경우 실패합니다.
- 30. Django - min_length가 설정된 경우 암호 정리가 실패합니다.
같은 매우 유사 작동하지 기본적인 크로스 원점 request.It을 할 것이 jQuery 플러그인입니다, 왜도 JQuery와 것 다른 도메인에 대한 호출을 처리 할 필요가 있으면 서버 측 코드에서 처리되어 페이지로 전달됩니다. – stephenbayer