>  기사  >  웹 프론트엔드  >  JS의 너무 긴 GET 전송 value_javascript 기술 문제에 대한 범위 및 솔루션

JS의 너무 긴 GET 전송 value_javascript 기술 문제에 대한 범위 및 솔루션

WBOY
WBOY원래의
2016-05-16 17:26:261169검색

프로젝트를 개발할 때 프런트엔드는 상대적으로 숨겨진 두 가지 문제에 직면했습니다.

문제 1. 특히 IE7 브라우저의 경우 IE URL 매개변수가 너무 길어서 HTTP 상태 122 오류가 발생합니다.
이유: IE6.8에서는 문제가 없지만 IE7과 호환되지 않습니다. get 매개변수가 너무 깁니다. Google은 "무효화할 수 있다면 Ajax 앱에서 GET 메소드를 사용하지 마십시오. IE7은 get 문자열에 2032자를 초과하여 문제를 일으키기 때문입니다."

해결책:
원본 넣기 프로젝트는 jsonp get data 방식을 사용하다가 일반 post data 방식으로 변경

문제 2. 이 범위 문제
이유: 객체 내부에 없으면 기본값으로 아래와 같이 대형 객체 창을 ajax 안에 넣으면 현재 도메인 이름 ajax 객체를 나타냅니다.

해결 방법:

코드를 복사하세요 코드는 다음과 같습니다.

var test={};
test.getflash = 2
test.test =function(){
alert(this.getflash); //2
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston ",
성공: function(msg){
alert(this.getflash); //정의 해제와 동일
}
});
}

해결 방법:
코드 복사 코드는 다음과 같습니다.

test.test =function() {
var thisValue = this;
alert(thisValue .getflash); //2
$.ajax({
type: "POST",
url: "some.php",
데이터: "이름=John&location=Boston",
성공: function(msg){
alert(thisValue.getflash); //2
}
});

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.