2011-07-20 14 views
0

私はいくつかのJSONを解析してフォーマットする簡単なjqueryスクリプトを書くことを試みています。あまりにも特別なものはありませんが、私はクロムで次のエラーを受け取り続けます:リソースはスクリプトとして解釈されますが、MIMEタイプtext/htmlで転送されます。jQuery XHR question

私はそれを見て、それはかなりよくある質問のようです。私は私が見つけることができるアドバイスのすべての部分をたどってきましたが、まだ運がありません。ここに私のコードです:

var url = "http://somesite.com/something/json/json_index.php?q="; 
var query = "someQuery"; 

$.ajax({ 
    url: url + query + "&callback=", 
    crossDomain:true, 
    dataType: 'jsonp', 
    success: function(data){ 
    alert('all done!'); 
    }, 
    error: function(data){ 
    alert('fail.'); 
    } 
}); 

誰でもアイデアや提案がありますか?

答えて

3

JSON-PはHTMLドキュメントに<script>というタグを作成し、リモートサーバーはyourCallback({the: data})を返すと予想されます。サーバーがHTMLドキュメントを返すようなエラーメッセージが表示されます。これは、404エラーやそれらの行に沿ったものである可能性があります。または、誤った構成のサーバーの結果である可能性があります(これは、 JSON-Pでテスト済み)。

Google Chromeのデベロッパーツールにも[ネットワーク]タブがあるので、どのリクエストが送信されているのか、どのレスポンスを受け取っているのかを確認することをおすすめします。これは、StackOverflowのさまざまなユーザーが使用しているAPIについて正確に知ることなく正確にデバッグすることはできませんが、あなたが持っているツールでデバッグできるようにしてください:

私も注意してくださいcallback=で終わるURLを送信していますが、jQueryのドキュメントでは、callback=?に疑問符を付けて、jQueryがコールバック名を記入できるようにしています。たぶん?を追加するだけで十分でしょう。

+0

私はばかです。私は現地で仕事をしようとしていて、起点がないエラーが発生し続けました。それから、私はこれをサーバー上に投げる必要があることを知った。それがトリックでした。また、私のdataTypeを 'json'に変更し、 "callbeck ="を削除しました - 今の魅力のように動作します。ありがとうございました! – Connor