Javascript AngularJS-$http get返回状态为0的错误?

Javascript AngularJS-$http get返回状态为0的错误?,javascript,xml,angularjs,cors,http-get,Javascript,Xml,Angularjs,Cors,Http Get,我有一个AngularJS应用程序,在其中我试图从服务器获取一个带有$http get的XML数据,比如说(当通过在浏览器中输入链接手动访问时,会显示XML文件的树结构) 当我运行应用程序时,不会从该链接获取数据。相反,它显示一个状态为0的错误 //url = http://example.com/a/b/c/d/getDetails?fname=abc&lname=def $http.get(url).success(function (data){ a

我有一个AngularJS应用程序,在其中我试图从服务器获取一个带有$http get的XML数据,比如说(当通过在浏览器中输入链接手动访问时,会显示XML文件的树结构)

当我运行应用程序时,不会从该链接获取数据。相反,它显示一个状态为0的错误

//url = http://example.com/a/b/c/d/getDetails?fname=abc&lname=def
$http.get(url).success(function (data){
                alert("Success");
                deferred.resolve(data);
            }).error(function (data, status){
                console.log("Error status : " + status);
            });
我不确定为什么$http.get会失败并转到返回状态0的错误函数

但是如果我将一个URL传递给具有JSON对象的本地服务器,它就会工作

问题是因为我试图从其他域访问XML文件(CORS问题?)还是其他原因


请帮帮我

没错,这是因为$http的默认内容类型为“application/json”。如果您想更改请求数据或响应数据,可以在tranformRequest和tranformResponse的帮助下进行更改。你可以找到更多关于它的信息

我还发现了一篇关于TransformRequest实现的文章,你有问题

响应您的REST请求的服务器必须包含CORS指定的头,以便允许Angular正确使用响应。本质上,这意味着在响应中包含Access Control Allow Origin标头,指定允许的请求来自的服务器。()


有一个指令允许您获取/设置白名单和黑名单,以确保用于源角度模板的URL是安全的。

是的,请参阅您的控制台,您应该有一个错误(跨原点…)不。我的控制台中没有类似的东西。如果我不希望控制台记录错误,但将其返回到DOM,该怎么办?谢谢。因此,对于使用transformRequest后的应用程序,我应该使用xml2json将xml内容转换为JSON并使用它吗?()或者有其他更好的解决方案吗?您的链接正在重定向到垃圾邮件站点。如果我将用于访问XML数据的链接列入白名单,就足够了吗?如果您使用xmlhttprequests,则需要JSONpadding。但是,服务器必须支持“跨源资源共享(CORS)”,在这种情况下,从其他域接收数据非常简单。