Ответ XMLHttpRequest является нулевым в Javascript - PullRequest
1 голос
/ 10 февраля 2011

при попытке выполнить XMLHttpRequest ответ возвращается с сервера (как проверено в Fiddler), но xhr.getAllResponseHeaders () возвращает null и выдает исключение.

Это из-за «Политики единого происхождения»?Подскажите, пожалуйста, как решить проблему?

Код: Использование 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

Ответы [ 2 ]

0 голосов
/ 10 февраля 2011

Чтобы обойти политику одного и того же происхождения, вы можете использовать JS для вызова PHP-скрипта, который получает содержимое внешнего URL и echo результаты.

0 голосов
/ 10 февраля 2011

Если ваша проблема связана с политикой того же происхождения, вы можете использовать YQL в качестве прокси.

РЕДАКТИРОВАТЬ: например.http://developer.yahoo.com/yql/console/#h=select%20*%20from%20atom%2810%29%20where%20url%3D%27http%3A//odata.netflix.com/v1/Catalog/Genres%27

Что приятно, вы можете попросить получить результат как json и легко использовать его из своего клиентского скрипта.

...