jQuery AJAX 요청이 IE에서 실패함
다음 AJAX 콜이 IE에서 실패합니다.
$.ajax({
url:"{{SITE_URL}}/content/twitter.json",
dataType:"json",
error:function(xhr, status, errorThrown) {
alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
},
success:function(json) {
...Snip...
}
});
에러 함수가 반환된다.
Undefined
parsererror
OK
서버에 대한 요청이 없기 때문에 JSON에는 문제가 없다고 생각합니다.
수정(#1351389 참조)
수정, 내용 유형을 변경했습니다.application/json; charset=utf8
간단히 말하면application/json
.
IE가 싫어 :)
또, IE 슈퍼 캐시를 회피하려면 , 다음의 순서에 따릅니다.
var d = new Date();
$.ajax({
url:"{{SITE_URL}}/content/twitter.json?_="+d.getTime(),
...Snip...
그러면 각 요구는 IE가 :D를 취득하기 위한 새로운 URL이 됩니다.
캐싱 문제에 대해 간단히 설명하면,cache: false
파라미터?
$.ajax({
url: "yoururl",
cache: false,
....
이것은 복사/복사입니까?마지막 ''를 오브젝트 컨스트럭터에 남겨두면 항상 신경이 쓰입니다.즉, 대부분의 브라우저에서 JS는 다음을 허용합니다.
o = { a:1, b:2, c:3, };
마지막 항목 뒤에 쉼표가 붙어있기 때문에 IE는 이것을 체크합니다.다음으로 변경합니다.
o = { a:1, b:2, c:3 };
그리고 그것은 동작한다.
Internet Explorer(IE7)의 새로운 버전에서는 $.ajax를 호출하기 전에 다음 행을 입력해야 합니다.그렇지 않으면 함수를 호출하지 않습니다.
$.ajaxSetup({ cache: false }); //this line before $.ajax!!!
$.ajax({
//codes
//codes
//codes
});
IE는 AJAX 요청을 매우 적극적으로 캐시합니다(어차피 Firefox보다 더 많이 캐시합니다).사이트에 적합하지 않은 경우 응답에서 Cache-Control 헤더를 적절하게 설정해야 합니다.
정적으로 생성된 JSON 및 IE의 주요 문제 중 하나는 대표적인 "Commas"입니다. 예를 들어 IE에서 오류가 발생합니다.
{
"one":"hello",
"two":"hi",
}
마지막 쉼표를 적어 둡니다.
{{SITE_URL}} 청크 증여는 어떤 내용입니까?브라우저의 소스코드 뷰에서 코드를 확인해 보세요.{{SITE _URL}} 청크에 후행 슬래시가 있고 요청 URL이 생성될 경우:
http://modomain.com/ / content / contents . json
어떤 것이 IE를 슬금슬금 빠져나갈 수 있을까요?
IE: JSON 미정의 오류 해결:
http://funkatron.com/site/comments/safely-parsing-json-in-javascript/
dataType: "json"을 사용하여 해석 회피
언급URL : https://stackoverflow.com/questions/425854/jquery-ajax-request-failing-in-ie
'programing' 카테고리의 다른 글
http promise가 있는 typscript 모듈에서 "this"가 정의되지 않은 이유 (0) | 2023.03.22 |
---|---|
app.config에서 서비스 주입 (0) | 2023.03.22 |
각도: ng-bind-html 필터가 ng-click을 제외합니까? (0) | 2023.03.22 |
프로젝터 + 크롬 드라이버:요소를 현재 클릭할 수 없습니다. (0) | 2023.03.22 |
WooCommerce의 제품 페이지에서 제품 개요 위에 콘텐츠를 추가합니다. (0) | 2023.03.22 |