ホームページ  >  記事  >  ウェブフロントエンド  >  JSこのスコープとGET送信値が長すぎる問題の解決策_JavaScriptスキル

JSこのスコープとGET送信値が長すぎる問題の解決策_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:26:261169ブラウズ

プロジェクトの開発中に、フロントエンドは 2 つの比較的隠れた問題に遭遇しました。

問題 1. 特に IE7 ブラウザでは、IE URL パラメータが長すぎるため、HTTP ステータス 122 エラーが発生します。
理由: IE6.8 では問題ありませんが、IE7 とは互換性がありません。 get パラメータが長すぎます。Google は「IE7 では get 文字列に 2032 文字を超えるとエラーが発生するため、無効にできる場合は Ajax アプリで GET メソッドを使用しないでください」と述べました。

解決策:
オリジナルを置く プロジェクトは 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 ",
success: function(msg){
alert(this.getflash); //undefine
}
});
}

解決策:
コードをコピー コードは次のとおりです:

test.test =function() {
var thisValue = this;
alert(thisValue .getflash); //2
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert(thisValue.getflash) //2
}
});

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。