programing

jQuery AJAX 요청이 IE에서 실패함

goodsources 2023. 3. 22. 21:09
반응형

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

반응형