1

尝试执行 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

4

2 回答 2

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 /流派%27

很好的是,您可以要求以 json 格式获取结果并从客户端脚本中轻松使用它。

于 2011-02-10T12:04:07.330 回答
0

为了规避同源策略,您可以使用 JS 调用 PHP 脚本来获取外部 url 的内容和echo结果。

于 2011-02-10T12:07:02.307 回答