오늘 테스트 작업을 하다가 jquery의 getJson 메서드를 사용하면 Firefox에서 실행 시 반환된 결과를 얻을 수 있다는 문제를 발견했습니다. 그런데 IE8에서 테스트해보니 요청이 전송되지 않은 것으로 나타났습니다. 결과적으로 우여곡절을 겪은 끝에 인터넷에서 한 기사에 대한 해결책을 찾아서 일부 수정했습니다.
1 통화마다 URL을 다르게 만듭니다
방법: 매개변수에 임의의 숫자를 추가합니다.
예 1:
jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",이름:"john",random:Math.random()} ,function(responseText){}
예 2:
"xxx.aspx?randID="+Math.random
예 3:
"xxx.aspx?randID="+ escape(new Date ())
2 캐시를 False로 설정하세요
$.ajax does notcacheversion:
$.ajax({ type:"GET" url:'test.html' , cache:false, dataType:"html", success:function(msg){ alert(msg); } });
3 labels.html 파일 상단에 다음 명령문을 추가하세요. :
4.load function은 HTML을 호출할 수 있을 뿐만 아니라 labels.php와 같은 스크립트도 호출할 수 있습니다. PHP 파일의 헤더 함수를 사용할 수 있습니다:
< ;?php
header("캐시 제어: 캐시 없음, must-revalidate");
?>
5 get 메소드 대신 post를 사용하세요.
Post 메소드 사용 시 주의사항:
헤더의 Context-Type을 application/x-www로 설정하세요. -form- urlencode는 일반적으로 XmlHttpRequestobjectSetRequestHeader("Context-Type","application/x-www-를 사용하여 엔터티에 매개변수 변수가 있음을 서버가 인식하도록 합니다.
form-urlencoded;").
예: xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
매개변수는 이름/값 일대일입니다. - 하나의 대응 키-값 쌍, 각 값 쌍은 앰퍼샌드로 구분됩니다. 예를 들어 var name=abc&sex=man&age=18, var name=update.php?abc&sex=man&age=18에 주의하세요. var name=?abc&sex=man&age=18 쓰기 방법이 모두 잘못되었습니다.
매개변수는 Send(매개변수) 방법으로 전송됩니다. 예: Get과 Post를 구별합니다. get 방법인 경우 $username입니다. = $_GET["username"]; post 메소드인 경우 $username = $_POST["username"]; 6 서버 측에 헤더("를 추가합니다. Cache-Control: no-cache, must -reva lidate");
7 Ajax 요청을 보내기 전에 추가하세요.
xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
8 ajax가 요청을 보내기 전에 추가
xmlHttpRequest.setRequestHeader("캐시 제어","캐시 없음");
위 내용은 jQuery.getJSON의 캐싱 문제를 해결하는 몇 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!