web-dev-qa-db-ja.com

Ajaxリクエストの問題:エラー80020101

Jspページを返すリクエストがあります。しかし、実際には、jspにはjsp:includeが含まれ(その中で別のjspファイルを呼び出します)、エラー80020101が発生します。

何か案は?

ありがとう

22
Ali

Src-attributeを使用してスクリプトをインポートするjavascript宣言を削除します。本当に必要な場合は、javascript-fileをinline-javascriptに変更してください。

ソース:http://bytes.com/topic/javascript/answers/750333-ie-syntax-error-80020101-undefined-array

ajax = 1などのパラメータをAJAXリクエストに追加し、ajax -parameterが存在する場合はJavaScript宣言を非表示にする最も簡単な方法リクエストに応じて。

これはjsp:includeを使用してファイルをインクルードすることとは関係がないと思います。ブラウザは、スローしたHTML以外の効果を認識していないからです。

8
heikkim

このエラーは、jQueryからAJAX呼び出しを実行していて、次のように配列の最後に余分なコンマを渡した場合にも発生します。

$.post('http://example.com/example1/',{
  field1:sField1,
  field2:sField2,
  field3:sField3,
  field4:sField4,
  field5:sField5,
},function(sData){
  if (console) { console.log(sData); }
});

SField5の後にカンマが表示されますか?それが構文エラーです。 IE以外のブラウザは気にしません。 IEは、あいまいな80020101エラー(つまり、「Javascriptを評価できません-構文エラーがあります」)をスローし、jQueryを使用している場合、それを追跡するのは事実上不可解です。デバッガーはjQueryのeval行をポイントするだけです。IEデバッガーは、Microsoftのおかげで、これを追跡するのに役に立ちません。次回80020101エラーが発生したとき、私の提案次のとおりです。

  1. AJAX呼び出しを探し、余分なコンマを探します。
  2. 末尾に余分なコンマがある配列(中括弧内のものなど)を探します。
  3. それでも解決しない場合は、<!--および//-->を使用してJavascriptをマークオフする手法を確認してください。これは、jQueryの1.7.2までの既知の問題であり、jQueryチームにまだ報告されているバグです。
  4. JQueryの最新バージョンに移動します。
  5. スクリプトブロックから1つずつ削除し、問題のあるコードが見つかるまでゆっくりと項目を追加していきます。
34
Volomike

同じエラーが発生しましたが、私の場合は予約語がありました'class'。これを明確にするためのコードスニペットを次に示します。

function foo(ajaxResponse){
  $(elem).attr('class', ajaxResponse.class);
}

私はこれを次のように書き直しました:

$(elem).attr('class', ajaxResponse['class']);

これがお役に立てば幸いです。

5
ManGysT

私は今、jQuery(最新バージョンでさえ)でこの問題に2回遭遇しました。唯一の解決策は、JavaScriptのalloneにコピーして貼り付けることです大きなファイルを作成し、それをJSLint(jsfiddle.net、推奨)で実行します。いくつかのマイナーなエラー(データコールバック構造の1つにある余分なカンマを含む)を指摘することができました。問題を解消するための元の場所。

http://jsfiddle.net/devlshone/QKxup/3/

5
DevlshOne

私の場合、JSコードに次のようなHTMLコメントがあることがわかりました。

<script type="text/javascript">
<!-- Unexpected Comment -->
//code...
</script>

交換しました<!-- -->/* */そしてそれは働いた。それが誰かを助けることを願っています。

4
Arvind Bhardwaj

私の場合、問題はAjaxの追加の役に立たないコマでしたPOSTエラーの終わりの関数:

$.ajax({
     type: 'POST',
     dataType: 'text',
     url: '../Client/GetName',
     data: { ClientId: id},
     success: function (respone) {
                alert(respone);
     },
     error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.statusText);
     }, //<- look here, this guy complicated my simple programmer life
 });

削除すると、すべて正常に動作します。

1
1_bug

私もこの問題に遭遇しましたが、スクリプトファイルを詳しく調べたところ、他のブラウザでスムーズに実行される小さなミスを犯したことがわかりましたが、IE選択して表示してください。エラー:

私の以前のコードは:

var autocomplete = new google.maps.places.Autocomplete(searchTextField ,options);

分析した後、searchTextFieldがidであることを確認しました。使用する前に値を取得する必要があります

だから私はそれを次のように変更します:

var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input,options);

そしてそれはうまくいきます。

IEがそれを検出するのは本当に素晴らしいことですが、Microsoftは、特定の原因に対して特定のエラーを表示するようにブラウザを拡張することがあります。同じコードが他のブラウザで機能する場合、非常にイライラするためです。

1
aakash jalodkar

私はこの問題に遭遇し、IEのエラーメッセージはあまり役に立ちませんでした。そのため、私はMozilla Firefoxで自分のサイトにアクセスしましたが、Firefoxは問題のあったコード行を正確に特定することができました。ハイテクフィックスではありませんが、IEを使用してこの問題をデバッグしている場合は、FFにサイトを読み込んで(Firebug拡張機能がインストールされている)、コンソール出力を確認してください。

1
janoulle

変数宣言の前に 'var'を入れ忘れて、問題が解決したと言いました。

<script>
    uploadDocument = "Some message";
</script>

私はそれを次のように修正しました:

var uploadDocument = "Some message";

根本的な原因は、同じid "uploadDocument"の要素がフォームにあることでした。そのため、上記の宣言により、htmlの形式が不正になりました

0
Shilpa R

あなたはたまたまjsファイルをインクルードしていますか?

なぜなら

エラー80020101は、IE=がスクリプトをコンパイルできないことを意味します。

0
Clyde Lobo

私の問題の原因は次のとおりです。

var a = b = c = true;

になった

var a = true;
var b = true;
var c = true;

今ではうまくいきます!

バイマ

0
user3481746

Jqueryの使用中に別の問題でこのエラーが発生しました。

変更$(document).ready(function(){}); TO $(window).load(function(){});

0
deepakssn

JQuery 1.10.2を使用していて、存在しないファイルをロードしていたときに、このエラーが発生しました。

ロードするファイルが正しいことを確認してください。そうでない場合、IE8は80020101エラーをスローします。

0
ndequeker

私の経験を共有したかった。私の場合、それはjavascriptとは何の関係もありませんでした。これは、同僚のHTMLで次の角度が使用されているためです。

 <img data-ng-model="previewImage" src="" data-ng-src="{{imageURL}}" alt="" ></img>

空のsrcを持つことは通常悪いことであることを思い出しました。 srcフィールドにデータを入力したところ、エラーは発生しなくなりました。

0
user1442605