다음과 같은 상황이 있습니다. 에 위치한 응용 프로그램에서jquery가있는 하위 도메인 html 페이지
https://subdomain.mydomain.com 내가 https://mydomain.com/page.aspx
I에있는 페이지의 HTML를 얻기 위해 노력하고 있어요 jquery $ .ajax 메서드로이 작업을 수행합니다.
$.ajax({
url: url,
type: 'GET',
contentType: 'application/x-www-form-urlencoded',
success: function (data, status, xhr) {
console.info("success");
},
error: function (xhr, status, error) {
console.error(error);
}
});
실제로 aspx 페이지가 호출되어 실행됩니다. 검사원 (IE의 개발 도구 및 방화범)에서 I는 응답 상태가 200 OK 것을보고는 예상 크기 (80킬로바이트)하지만, 응답 내용이 :
(XDomainRequest를 통해) IE와 파이어 폭스는 같은 동작을 비었다. JQuery와 오류가 그렇게 유용하지 않다 :
readyState: 0,
responseText: ""
status: 0,
statusText: "error"
나는 그것이 동일한 기원 정책을 포함하는 것을 같아요. YQL (하지만 추가 라이브러리를 사용하고 싶지는 않음) 및 JSONP (일반 HTML로 작업하고 있음)로 이러한 종류의 문제를 해결하는 사람들을 볼 수 있습니다. 절망의 순간에서
나는document.domain = 'mydomain.com';
jQuery.support.cors = true;
없음 성공처럼 또한 트릭을 시도했다. 어떤 팁?
문제는 수신 응용 프로그램에서 활성화해야하는 Access-Control-Allow-Origin
입니다. 제 경우에는 IIS7 호스팅에서 asp.net 응용 프로그램이었습니다. 다음 웹 사이트는 많은 서버 유형에 enable CORS 많은 구성을보고
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
그게 효과가! 방금 올바른 서버 구성에 추가해야했습니다. 이 링크는 많은 도움이되었습니다. http://enable-cors.org/ 도움을 주셔서 감사합니다. – abx78