3

私はクロスドメインスクリプティングを披露するさまざまなサンプルに取り組んできましたが、Webサービスからデータを取得するためにAjax呼び出しとともにjQuery.support.cors=trueを使用したい場合に遭遇しました。jsonpを使用して動作するWebサービスの例があります。これは、jQuery.support.cors = trueを追加し、dataTypeを "json"に変更して、&$ callback =?を削除するのが簡単だと思いました。URLから。Webサービス(Netflix)から期待されるデータで応答が返されるのを確認できますが、ajax呼び出しが返されると、成功ではなくエラー関数が実行されます。

私は当初、Webサービスに適切なcorsヘッダーがない可能性があると考えていましたが、受信したフォーマットされた応答は、既存のヘッダーと同等であると考える傾向があります。おそらく、成功/エラー関数を適切にフォーマットしておらず、Ajaxの結果はそれを好みません。

これは、 jQuery.support.corsを無駄に使用しようとしているフィドルです。

4

2 に答える 2

5

から:curl -i "http://odata.netflix.com/v2/Catalog/Titles?$select=Name,Runtime,ReleaseYear&$filter=dark&$orderby=Name&$format=json"

Cache-Control: private
Content-Length: 3386076
Content-Type: application/atom+xml;charset=utf-8
Expires: Tue, 01 May 2012 14:37:06 GMT
Vary: *
Server: Microsoft-IIS/7.0
DataServiceVersion: 2.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 01 May 2012 14:36:37 GMT

CORS関連のヘッダーはありません。NetflixはCORSリクエストを許可していません。

于 2012-05-01T14:37:28.080 に答える
1

確かにこの例では、Netflixは自分のサーバーの外部から発信されたものをすべてブロックします。

于 2012-05-01T14:35:22.443 に答える