0

私は立ち往生しています-そして、私が単純になると思っていたものにはかなりイライラしています:(

Jクエリ:

$.ajax({ 
 url: "http://ur.ly/new.json?href=http://www.yahoo.com"), 
 type: "GET",
 dataType: "jsonp",
 success: function(data){
 console.log(data);
}});

これを試してみましたが、FF では「無効なラベル」エラーが表示され、Chrome では別のエラーが表示されます。

データ型として「json」を使用すると、null が返されます。

イライラするのは、ブラウザで試してみると、URL が正常に機能することです。また、返されたデータの「jsonp」変数からのエラーは、必要なデータを示していますが、エラーが原因でデータにアクセスできません。

それに応じて API の要件を変更して、XML またはスクリプトにスワップしようとしましたが、何もしませんでした。他の短縮サイトも試してみましたが同じ現象です。

また、クエリ部分を data: に移植しようとしましたが、どちらも機能しませんでした。

ヘルプ!:(そして、見てくれてありがとう。:)

4

2 に答える 2

1

jsonp正しい。

セキュリティ上の理由から、他のタイプは機能しません。


私はあなたのコードを試してみました.ur.lyからの結果はjsonp文字列ではなく純粋なjson文字列です:

{"code":"X5","href":"http://www.yahoo.com"}

これらのデータを読み取るために、サーバー側の小さなスクリプトを作成する場合があります。

あなたのJavaScriptは、json代わりにjsonp.

于 2010-08-24T12:11:11.267 に答える
0

これは、jQuery AJAX 呼び出しで JSONP 要求を作成しようとしているが、ur.ly API は現在 JSONP をサポートしていないためです。Javascript の同一生成元ポリシーにより、プレーンな JSON 呼び出しを別のドメインに使用しても機能しません。

JavaScript とリモート サーバーの間の仲介役として機能するサーバー側のプロキシ スクリプトを作成するか (Ghommey が上で述べているように)、JSONP 要求をサポートする別の URL 短縮 API (例: bit.ly ) を使用する必要があります)。

于 2010-08-24T12:41:21.390 に答える