1
jQueryとIEで非常に奇妙な問題が発生しています。 IE8でjQuery 1.4.4を使用しています。jQuery AJAX成功ハンドラが期待どおりに機能しない
$.ajax({
url: '/events/do_something',
dataType: 'json',
data : params,
beforeSend : function() {
setPageStateLoading(true);
},
success : function(data){
doSomethingElse(data, false);
},
error : function(XMLHttpRequest) {
openErrorDialog(XMLHttpRequest.responseText);
},
complete : function(XMLHttpRequest, textStatus) {
setPageStateLoading(false);
}
});
リクエストが成功したにもかかわらず、エラーハンドラが解析エラーのために呼び出されます。
で失敗var ct = xhr.getResponseHeader("content-type") || "",
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」とパースエラーが発生します(これは、Firefox上で完璧に動作)、問題はjQueryのでライン6229で返されるJSONは何も問題はありません。
現時点では、回避策としてif文を使用して完全ハンドラを使用していますが、これは本当に良い考えではありません。どのようにこれを正しく修正するためのアイデアですか?
JSONが表示されますか?私の賭けはどこかに後ろにカンマがあることです。これはIEで壊れますが、他のブラウザでも動作します。 – lonesomeday
HTTPレスポンスヘッダーを取得して、コンテンツタイプヘッダーに関するものかどうかを確認してください。あなたは、ライブhttpヘッダーや火かき棒でfirefoxからそれをつかむことができます。 – regilero