AngularJS - $http get returns error with status 0?

会有一股神秘感。 提交于 2019-12-18 05:51:33

问题


I've an AngularJS application in which I'm trying to get an XML data with $http get from a server say http://example.com/a/b/c/d/getDetails?fname=abc&lname=def (this when accessed manually by entering the link in a browser shows a tree structure of the XML file).

When I run the application the data from that link is not fetched. Instead its showing an error with status 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);
            });

I'm not sure why the $http.get fails and goes to the error function returning status 0.

But if I pass an URL to the local server which has a JSON object, it works.

Is the problem because of me trying to access the XML file from a different domain(CORS issue?) or something else?

Please help me out!


回答1:


You have HTTP access control (CORS) issues .

The server answering your REST requests MUST include the headers specified by CORS in order to allow Angular to consume properly the response. Essentially this means including the Access-Control-Allow-Origin header in your response, specifying the servers from where the request comes from, that are allowed. (ref)

There is directive Angular allows one to get/set the whitelists and blacklists used to ensure that the URLs used for sourcing Angular templates are safe.




回答2:


yes you got it right, its because default content-type for $http is “application/json” if you want to change the request data or response data you can change it with the help of tranformRequest and tranformResponse. you can find more information on it here

also i find an article on implementation of tranformRequest change post data from json to form post in angularjs



来源:https://stackoverflow.com/questions/27145287/angularjs-http-get-returns-error-with-status-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!