2013-03-12 4 views
1

웹 응용 프로그램을 호스팅하는 서버와 다른 도메인의 서버에서 웹 서비스에 대한 아약스 요청을하는 웹 응용 프로그램을 개발했습니다.즉, 10 개의 교차 도메인 아약스 요청

크로스 도메인 요청을 허용하기 위해 필요한 헤더를 설정하기 위해 비행 전 점검을 수행하도록 웹 서비스를 구성했습니다.

웹 응용 프로그램에서 JQuery 클라이언트를 사용하여 웹 서비스에 액세스하고 있습니다. 도메인 간 액세스를 허용하도록 Jquery 명령에서 속성을 설정했습니다.

$ .support.cors = true;

Chrome에서는이 모든 것이 정상적으로 작동합니다. 그러나 IE9에서는 크로스 도메인 동작이 부분적으로 만 성공합니다. 모든 요청은 작동합니다. 그러나 IE9가 text/html을 제외한 모든 content-type으로 게시물 요청을 거부하기 때문에 application/json의 content-type이 포함 된 게시물 요청은 실패합니다. IE9는 요청에서 content-type을 전환하고 400 요청이 잘못된 서버에서 요청이 실패합니다.

나는 IE10에서 크로스 도메인 요청이 Chrome에서와 같이 작동한다는 것을 읽었습니다. 그러나 이것을 테스트 한 결과 IE10은 IE9와 동일한 동작을합니다. 브라우저는 content-type을 application/json으로 설정하지 않습니다. 따라서 게시물 요청이 실패합니다.

누군가가 IE10에서 text/html 이외의 다른 content-type으로 크로스 도메인 게시 요청을 할 수 있는지 여부를 아는 사람이 있습니까? 이로 인해 데이터를 표시하는 것 이상의 작업을 수행하는 웹 앱을 작성하는 것이 매우 어려워졌습니다.

Jquery 요청에 필요한 다른 설정이 있습니까? 아니면 비행 전 서비스 중이십니까?

답변

0

$ .ajax() 통화는 어떻게 생겼습니까? 데이터 유형을 json으로 강제 설정하려면 data: 'json'을 JQuery 호출에 추가 할 수 있습니다. 또한 $.support.cors = true;을 설정할 필요가 없어야합니다. JQuery가 이것을 알아야합니다 (하지만 지금은 그대로 둡니다).

-1

콘텐츠 형식 매개 변수 집합 데이터 'json'이 있습니다. 크롬이이를 준수하지만 IE는 text/html로 전환합니다. 나는 이것이 IE9 이하의 알려진 문제 였지만 IE10은 Chrome과 동일한 Ajax 구현을 사용한다는 것을 읽었지만 분명히 그렇지 않다.

+0

답변이 아닌 댓글로 남겨 두어야합니다. – brbcoding

관련 문제