Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs-使用$http获得xml响应,而不是json_Javascript_Html_Xml_Angularjs - Fatal编程技术网

Javascript Angularjs-使用$http获得xml响应,而不是json

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的字符串值。事

我正在尝试使用angularjs/javascript创建一个网站

我知道angularjs提供了一个
$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
属性,则它不是。