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

时间:2014-11-26 09:19:09

标签: javascript xml angularjs cors http-get

我有一个AngularJS应用程序,其中我试图从服务器获取带有$ http的XML数据说http://example.com/a/b/c/d/getDetails?fname=abc&lname=def(这在通过在浏览器中输入链接手动访问时显示树结构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对象的本地服务器,则可以正常工作。

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

请帮帮我!

2 个答案:

答案 0 :(得分:17)

您有HTTP access control (CORS)个问题。

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

指令Angular允许用户获取/设置白名单和黑名单,以确保用于采购Angular模板的网址是安全的。

答案 1 :(得分:2)

是的,你说对了,因为$ http的默认内容类型是“application / json”,如果你想改变请求数据或响应数据,你可以在tranformRequest和tranformResponse的帮助下改变它。你可以在here

找到更多相关信息

我还找到一篇关于tranformRequest change post data from json to form post in angularjs

实施的文章
相关问题