2

jQuery Docs では、リクエストで複数dataTypeの s をjQuery.ajax()使用できることが言及されています(データ型セクション)。これは私がやろうとしていることにはうまく適合しますが、期待どおりには機能しません。まだ JSON パーサーで応答を解析していますが、構成で要求されるように、応答をプレーンテキストとして処理する前に失敗しています。ここに私のコードがあります:

jQuery.ajax({
    dataType: "jsonp html",
    url: "http://nomads.ncep.noaa.gov:9090/dods/rap/rap20120821/rap_f01.ascii?ugrdprs[7][0][-364][716]",
    success: function( data ) {
        console.log(data);
        callback(null, 'ucb');
    },
});

Chrome インスペクタの [ネットワーク] タブによると、ファイルは正常に取得されますが、エラーが表示されます

Uncaught SyntaxError: Unexpected token < 

jsonp のように取得して html に変換する代わりに。

ここで何が間違っているのでしょうか?ありがとう!

4

1 に答える 1

0

"?callback=?"JSONPは、コールバックを指定するためにURLの末尾に追加を追加しました。

たとえば、

https://gdata.youtube.com/feeds/api/videos/XZQFBbdOLRQ?v=2&alt=json

あなたは純粋なjsonを見ることができます。

ただし、 https://gdata.youtube.com/feeds/api/videos/XZQFBbdOLRQ?v = 2&alt = json&callback=jQuery1234に電話する場合

あなたのデータはjQuery1234(...)にあります

そして、jqueryはjQuery1234(...)のデータを解析します

   
  -------------------------------------------------- -------------------------------------

xmlとhtmlもそうです

https://gdata.youtube.com/feeds/api/videos/XZQFBbdOLRQ?v=2&callback=jQuery1234に電話する場合

(上記のリンクは、jQuery1234(...)のxmlデータを表示します)

jsonpデータをhtmlに変換したい場合これが私の提案です:

http://example.com/?callback=jQuery1234

応答例:

jQuery1234("<html><head></head><body>Hello World!</body></html>");

dataTypeを"jsonphtml"として設定すると、jqueryは応答をhtmlとして認識します。

于 2012-08-21T04:00:29.887 に答える