Jspページを返すリクエストがあります。しかし、実際には、jspにはjsp:includeが含まれ(その中で別のjspファイルを呼び出します)、エラー80020101が発生します。
何か案は?
ありがとう
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以外の効果を認識していないからです。
このエラーは、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エラーが発生したとき、私の提案次のとおりです。
<!--
および//-->
を使用してJavascriptをマークオフする手法を確認してください。これは、jQueryの1.7.2までの既知の問題であり、jQueryチームにまだ報告されているバグです。同じエラーが発生しましたが、私の場合は予約語がありました'class'
。これを明確にするためのコードスニペットを次に示します。
function foo(ajaxResponse){
$(elem).attr('class', ajaxResponse.class);
}
私はこれを次のように書き直しました:
$(elem).attr('class', ajaxResponse['class']);
これがお役に立てば幸いです。
私は今、jQuery(最新バージョンでさえ)でこの問題に2回遭遇しました。唯一の解決策は、JavaScriptのallをoneにコピーして貼り付けることです大きなファイルを作成し、それをJSLint(jsfiddle.net、推奨)で実行します。いくつかのマイナーなエラー(データコールバック構造の1つにある余分なカンマを含む)を指摘することができました。問題を解消するための元の場所。
私の場合、JSコードに次のようなHTMLコメントがあることがわかりました。
<script type="text/javascript">
<!-- Unexpected Comment -->
//code...
</script>
交換しました<!-- -->
と/* */
そしてそれは働いた。それが誰かを助けることを願っています。
私の場合、問題は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
});
削除すると、すべて正常に動作します。
私もこの問題に遭遇しましたが、スクリプトファイルを詳しく調べたところ、他のブラウザでスムーズに実行される小さなミスを犯したことがわかりましたが、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は、特定の原因に対して特定のエラーを表示するようにブラウザを拡張することがあります。同じコードが他のブラウザで機能する場合、非常にイライラするためです。
私はこの問題に遭遇し、IEのエラーメッセージはあまり役に立ちませんでした。そのため、私はMozilla Firefoxで自分のサイトにアクセスしましたが、Firefoxは問題のあったコード行を正確に特定することができました。ハイテクフィックスではありませんが、IEを使用してこの問題をデバッグしている場合は、FFにサイトを読み込んで(Firebug拡張機能がインストールされている)、コンソール出力を確認してください。
変数宣言の前に 'var'を入れ忘れて、問題が解決したと言いました。
<script>
uploadDocument = "Some message";
</script>
私はそれを次のように修正しました:
var uploadDocument = "Some message";
根本的な原因は、同じid "uploadDocument"の要素がフォームにあることでした。そのため、上記の宣言により、htmlの形式が不正になりました
あなたはたまたまjsファイルをインクルードしていますか?
なぜなら
エラー80020101は、IE=がスクリプトをコンパイルできないことを意味します。
私の問題の原因は次のとおりです。
var a = b = c = true;
になった
var a = true;
var b = true;
var c = true;
今ではうまくいきます!
バイマ
Jqueryの使用中に別の問題でこのエラーが発生しました。
変更$(document).ready(function(){}); TO $(window).load(function(){});
JQuery 1.10.2を使用していて、存在しないファイルをロードしていたときに、このエラーが発生しました。
ロードするファイルが正しいことを確認してください。そうでない場合、IE8は80020101エラーをスローします。
私の経験を共有したかった。私の場合、それはjavascriptとは何の関係もありませんでした。これは、同僚のHTMLで次の角度が使用されているためです。
<img data-ng-model="previewImage" src="" data-ng-src="{{imageURL}}" alt="" ></img>
空のsrcを持つことは通常悪いことであることを思い出しました。 srcフィールドにデータを入力したところ、エラーは発生しなくなりました。