2012-05-01 23 views
3

クロスドメインスクリプティングを示すさまざまなサンプルを作成していて、jQuery.support.cors = trueとAjax Webサービスからデータを取得するための呼び出し。私は、jQuery.support.cors = trueを追加し、dataTypeを "json"に変更し、& $ callback =を削除することが簡単だと思ったwebservice working using jsonpの例を持っています。 urlから。期待されるデータでWebサービス(Netflix)から返ってくる応答を見ることができますが、ajax呼び出しが返されると、成功とは対照的にエラー関数が実行されます。jQuery.support.cors = trueを使用したクロスドメインスクリプティング

私はもともと、Webサービスに適切なCorsヘッダーがない可能性があると考えましたが、受け取った書式設定された応答が既存のヘッダーと同じであると考える傾向があります。おそらく私は成功/エラー関数を適切にフォーマットしていないので、Ajaxの結果はそれを気に入らない。

ここにはthe fiddleがあり、jQuery.support.corsを無駄に使用しようとしています。

+0

"受け取った書式設定された応答が既存のヘッダーと同じであると思う傾向があります。" - そうではありません。 – Quentin

答えて

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要求を許可しません。

+0

私は、なぜ彼らがcorsをサポートしていない場合でも結果のデータペイロードを見ることができるのかどうかはわかりません。クエリが合計でブロックされるべきではありませんか? – ShelbyZ

+1

@ShelbyZ - いいえ、JavaScriptには見えません。 – Quentin

1

確かに、この例では、Netflixは自分のサーバーの外で発生するものをブロックしています。

関連する問題