2013-04-12 7 views
5

は、次のようなAJAX呼び出しを考えます。私は今日、jQueryを1.9にアップデートしました。(私は1.6にしばらくの間)、突然、さまざまなトグル機能(サポートされていないeventLayer.Xについてのサポート)をサポートしていないSafariの可能な修正として、今やすべてのAjaxコールがJavaScriptのエラー以下:少し研究し、いくつかのテストの後

Uncaught Syntax Error: Unexpected token o 

、私は上記の私のコードでは、「responseTextは」今JSONオブジェクトではなく文字列であることを発見しました。だからエラーは理にかなっていますが、私はこれについて私の頭を包み込みようとしています。 jQueryはデフォルトの戻り値の型を実際に変更しましたか?私はドキュメントをチェックしました:

http://api.jquery.com/jQuery.ajax/ 

データタイプはデフォルトで "Intelligent Guess"に設定されています。私はそれがどのように便利かを見ることができますが、私はそれも好きではありません。だからここ

は私の質問です:

  1. が、これはjQueryのでは、新しい(っぽい)の変化ですか?
  2. これを行ったのはバージョン1.9ですか、これまでにこのようにしていましたか?1.6を使用していた化石ですか?
  3. これを処理するためのいくつかの提案と私のコードの「未来の証拠」は何ですか?

これは、多くのコードに影響する非常に基本的な変更です。私は自分のコードを調べて、返されたデータをJSONに解析するインスタンスをすべて削除しますが、この全部はやや不安です。 dataTypeを指定しなかったのは間違いでしたか?私はデフォルトに頼るのではなく、データ型を強制するのがよい習慣だと思うが、...うわー。私はこれだけでいいのですか、それともjQueryの部分に変化が予想されていましたか?

+0

http://jsfiddle.net/5e9KC/ここでうまく動作します...これは何ですか?ここに何か変わっている何かがあるはずです –

+0

curCSSが非難されているのを見てください –

+0

@mcpDESIGNSあなたのフィドルは何もしないので "働かない"明らかに、エラーをスローするにはjavascriptを実際に実行する必要があります。 ローストされた "curCSS?"私は自分のコードでそれを使用していない、なぜそれが問題になるだろうか? – AceCorban

答えて

6

jQueryは、dataTypeが設定されていない場合に返されたものに基づいて、dataTypeが何を基にしているかを自動的に検出します。おそらく1.9は、あなたがjsonとして戻ってきたものを適切に検出するための検出を改善したばかりです。常に一貫性のある結果を得るために、常にデータ型を与えることが最善です。

+0

「インテリジェントな推測」は、しばらくの間、(おそらく1.6でも)アヤックスの戻り値型の意図だったと言っていますが、今はもっと良い仕事をしていますか? – AceCorban

+0

はい。データが何であるかを推測するだけで、より良い仕事をしています。 –

+0

十分に公正です。ありがとう。 – AceCorban

関連する問題

 関連する問題