Javascript中的XMLHttpRequest响应为空

时间:2011-02-10 10:27:49

标签: javascript xmlhttprequest same-origin-policy

尝试执行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 :(得分:0)

如果您的问题是同源政策,则可以使用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获取并轻松地从客户端脚本中使用它。

答案 1 :(得分:0)

要绕过同源策略,您可以使用JS来调用获取外部URL内容的PHP脚本,并echo结果。