Javascript Angularjs-使用$http获得xml响应,而不是json
我正在尝试使用angularjs/javascript创建一个网站 我知道angularjs提供了一个Javascript Angularjs-使用$http获得xml响应,而不是json,javascript,html,xml,angularjs,Javascript,Html,Xml,Angularjs,我正在尝试使用angularjs/javascript创建一个网站 我知道angularjs提供了一个$http对象,我可以用它发出get请求。我以前使用这个来获取json,我可以使用相同的对象来获取XML(HTML)吗?(我相信响应将使用gzip编码) 谢谢 您应该能够使用$http获取JSON以外的响应数据。说明默认响应转换之一是,如果检测到JSON响应,则使用JSON解析器对其进行反序列化。但是,如果您请求其他内容(例如HTML模板)response.data应具有该HTML的字符串值。事
$http
对象,我可以用它发出get请求。我以前使用这个来获取json,我可以使用相同的对象来获取XML(HTML)吗?(我相信响应将使用gzip编码)
谢谢 您应该能够使用
$http
获取JSON以外的响应数据。说明默认响应转换之一是,如果检测到JSON响应,则使用JSON解析器对其进行反序列化。但是,如果您请求其他内容(例如HTML模板)response.data
应具有该HTML的字符串值。事实上,Angular使用$http
下拉HTML以与ngInclude
等一起使用
在响应到达$http
之前,浏览器应该处理gzip(在本例中为解压缩),使用$httpProvider
获取xml文件不会以DOM的形式将响应数据传递到回调中
使用以下示例作为模式,并在旧IE客户端中使用DOMParser
或适当的ActiveX对象转换返回的文本
exampleModule=angular.module('exampleModule',[]);
exampleController=exampleModule.controller('exampleController',['$scope','$http',函数($scope,$http){
$http.get(“example.xml”).then(函数(响应){
var-dom;
if(DOMParser的类型!=“未定义”){
var parser=新的DOMParser();
dom=parser.parseFromString(response.data,“text/xml”);
}
否则{
var doc=新的ActiveXObject(“Microsoft.XMLDOM”);
doc.async=false;
dom=doc.loadXML(response.data);
}
//现在,响应是一个带有childNodes等的DOMDocument。
返回dom;
});
}]);
如果您希望success
回调中传递的参数是基于响应头中的文件扩展名或MIME的本机XMLHttpRequest
的responseXML
属性,则它不是。