ie8과 호환되지 않는 jquery ajax에 대한 솔루션: 먼저 해당 코드 파일을 연 다음 JSON 형식을 사용하여 "{foo:["bar1", "bar2"]}"와 같은 코드 문을 사용하여 데이터를 요청합니다.
이 튜토리얼의 운영 환경: Dell G3 컴퓨터, Windows 7 시스템, jquery1.10.0&&ie8 버전.
추천: "javascript 기본 튜토리얼" "jquery 비디오 튜토리얼"
IE
jQuery의 AJAX:get 메소드를 사용하여 데이터 존재 여부를 감지하는 경우, IE가 호환되지 않는 것으로 확인되었습니다.
AJAX:post 메소드를 사용하면 Chrome/FireFox/IE를 사용할 때 올바른 결과가 나타날 수 있지만 AJAX:get 메소드를 사용할 경우 IE는 올바른 결과를 반환할 수 없습니다.
데이터가 get 메소드의 길이 제한을 초과하는 것은 아닐까요? 전체 데이터 중 일부만 전송한 것은 불가능합니다. 들어오지 못하게 하다.
인터넷의 일부 네티즌들은 IE 캐시에 문제가 있다고 말했습니다. 새로운 Date().getTime()에 시간 번호를 추가하는 등 요청 데이터 뒤에 임의의 숫자를 추가하면 됩니다.
이전 코드에 난수를 추가했는데 "Math.random()"을 사용하면 작동하지 않습니다. 시간을 사용하는 것이 더 안정적입니까?
그런 다음 시간을 가져오도록 변경해 보세요. 매개변수 뒤에 "new Date().getTime()"을 추가하고 반복적으로 테스트해 보지만 여전히 작동하지 않습니다. 이 오류도 제거되었습니다.
매뉴얼을 반복적으로 확인한 결과 요청한 데이터 형식이 여전히 {foo:["bar1", "bar2"]}와 같은 JSON 형식인 것을 발견하고 이 형식으로 작성했으며 올바른 쿼리는 결과가 실제로 반환되었습니다. IE에 여전히 이런 요구 사항이 있는지는 정말 몰랐습니다. (끝)
이전 형식:
type: "get", data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp="+new Date().getTime(),
개선된 형식:
type: "get", data: {'bid':my_bid,'name_cn':name_cn,'timeStamp':new Date().getTime()},
jQuery 매뉴얼에는 다음과 같이 설명되어 있습니다.
data Object,String
데이터가 서버로 전송됩니다. 요청 문자열 형식으로 자동 변환됩니다. GET 요청의 URL에 추가됩니다.
이 자동 변환을 비활성화하려면 processData 옵션 설명을 참조하세요. 키/값 형식이어야 합니다.
배열인 경우 jQuery는 자동으로 동일한 이름을 다른 값에 할당합니다. 예를 들어, {foo:["bar1", "bar2"]}는 "&foo=bar1&foo=bar2"로 변환됩니다.
코드 조각:
var siteUrl="http://blog.sina.com.cn/cnwyt"; jQuery.ajax({ type: "get", url: siteUrl+"cosmetics/product/ajax_check?", //data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp=" + new Date().getTime(), data: {'bid':my_bid,'name_cn':name_cn,'timeStamp':new Date().getTime()}, dataType: 'json', error: function (err) { alert('网络故障,请与管理员联系!') }, success: function (message) { if(message!=false){ //ture的代码 }else{ //false的代码 } });
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 교육을 방문하세요! !
위 내용은 jquery ajax가 ie8과 호환되지 않는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!