IE에서 jQuery ajax 호출과 함께 '전송 불가' 오류 발생
장소를 검색하려면 foursquare API를 사용해야 합니다.물론 그것은 교차 도메인이다.
파이어폭스에서는 문제가 없지만 Internet Explorer에서는 문제가 없습니다(7, 8, 9 테스트 완료).
javascript 코드는 다음과 같습니다.
searchVenues: function(searchQuery) {
$.ajax({
url: 'https://api.foursquare.com/v2/venues/search',
data: {
sw: bound_south_west,
ne: bound_north_east,
query: searchQuery.query,
oauth_token: FSQ_OAUTH_TOKEN,
limit: 25,
intent: 'browse',
v: 20120206
},
cache: false,
dataType: 'json',
success: function(data) {
displayResults(data, searchQuery.query);
},
error: function(xhr, status, errorThrown) {
console.log(errorThrown+'\n'+status+'\n'+xhr.statusText);
}
});
}
파이어폭스에서는, 수신한 데이터를 완전하게 표시합니다.Internet Explorer에서는 콘솔에 기록됩니다.
No Transport
Error
Error
어떻게 해야 하나?
Windows Mobile 7에서 테스트했습니다.
많은 시간을 들여서 이해한 결과, 다음과 같은 사실을 알게 되었습니다.
http://bugs.jquery.com/ticket/10660
솔루션은 간단합니다.설정만 하면 됩니다.
$.support.cors = true;
도메인 간 Ajax 요청이 작동합니다.
jQuery.support.cors = true;
$.ajax({
crossDomain: true,
url: "",
type: "POST",
dataType: "xml",
data: soapMessage,
});
교차 도메인 값을 true로 만들어야 합니다.
다음 솔루션을 사용해 보십시오.
https://stackoverflow.com/a/14463975/237091
또는 jquery를 포함한 직후에 이 코드를 HTML에 넣기만 하면 됩니다.
<!--[if lte IE 9]>
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.3/jquery.xdomainrequest.min.js'></script>
<![endif]-->
이 문제가 한동안 나를 괴롭히고 있다.회피책으로 같은 사이트에 있는 프록시 스크립트를 사용합니다.이러한 스크립트는 단순히 서버 간 비 ajax HTTP 요청을 실행합니다(컬과 WinHttp를 생각해 보십시오).WinHttpRequest)를 사용하여 상태와 데이터를 발신자에게 전달합니다.동작합니다만, 2개의 HTTP 요구를 실행할 필요가 있기 때문에 그다지 효율적이지 않습니다.
이 경우 솔루션은 위에서 설명한 모든 내용과 'Access-Control-Allow-Origin' 헤더를 조합한 것입니다.
$.support.cors = true; // this must precede $.ajax({}) configuration
$.ajax({
crossDomain: true, // added in jQuery 1.5
headers: {
'Access-Control-Allow-Origin': '*'
},
...
});
이러한 호출에 응답하는 웹 서비스는 'Access-Control-Allow-Origin: *' 헤더로도 응답합니다.
jquery 버전을 변경하고 CDN 링크를 교체했는데 작동했어요!그냥 해.crossDomain:true
그리고.$.support.cors
= true는 작동하지 않습니다.
<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
언급URL : https://stackoverflow.com/questions/9160123/no-transport-error-w-jquery-ajax-call-in-ie
'source' 카테고리의 다른 글
Wordpress 투고 전용 커스텀 퍼멀링크 (0) | 2023.03.10 |
---|---|
json 배열 jquery를 루프합니다. (0) | 2023.03.10 |
jquery $.get()을 사용하여 파라미터를 송신하는 방법 (0) | 2023.03.10 |
add_action을 통해 인수를 함수에 전달할 수 있습니까? (0) | 2023.03.10 |
Fetch Post 콜 후 리다이렉트 (0) | 2023.03.10 |