1

XMLHttpRequest を実行しようとすると、(Fiddler でチェックしたように) サーバーから応答が返されますが、xhr.getAllResponseHeaders() は null を返し、例外をスローします。

「Same Origin Policy」のせいでしょうか?問題の解決方法を教えてください。

コード: datajs.codeplex.com オープン ソース コードの使用:

                xhr.onreadystatechange = function () {
                if (xhr === null || xhr.readyState !== 4) {
                    return;
                }

                // Workaround for XHR behavior on IE.
                var statusText = xhr.statusText;
                var statusCode = xhr.status;
                if (statusCode === 1223) {
                    statusCode = 204;
                    statusText = "No Content";
                }

                var headers = [];
                var responseHeaders = xhr.getAllResponseHeaders().split(/\r?\n/);

リソースは別のドメインにあります。http://odata.netflix.com/v1/Catalog/Genresへのアクセス

4

2 に答える 2

0

The same-origin ポリシーが問題である場合は、YQLをプロキシとして使用できます。

編集:例えば。http://developer.yahoo.com/yql/console/#h=select%20*%20from%20atom%2810%29%20where%20url%3D%27http%3A//odata.netflix.com/v1/Catalog /ジャンル%27

すばらしいのは、結果を json として取得し、クライアント スクリプトから簡単に使用するように要求できることです。

于 2011-02-10T12:04:07.330 に答える
0

同一生成元ポリシーを回避するには、JS を使用して、外部 URL のコンテンツと結果を取得する PHP スクリプトを呼び出すことができますecho

于 2011-02-10T12:07:02.307 に答える