Angularjs - 使用 $http 获取 xml 响应而不是 json
Angularjs - using $http to obtain xml response rather than json
我正在尝试使用angularjs/javascript抓取网站。
我知道angularjs提供了一个$http
对象,我可以用它来发出get请求。我以前用这个来获取 json,我可以使用相同的对象来获取 XML (HTML) 吗?(我相信响应将使用 gzip 进行编码)。
谢谢!
获取包含 $httpProvider
的 xml 文件不会以 DOM 的形式将响应数据传递到回调中。
使用下面的示例作为模式,并使用旧 IE 客户端中的DOMParser
或适当的 ActiveX 对象转换返回的文本。
exampleModule = angular.module('exampleModule', []);
exampleController = exampleModule.controller('exampleController', ['$scope', '$http', function ($scope, $http) {
$http.get("example.xml").then(function (response) {
var dom;
if (typeof DOMParser != "undefined") {
var parser = new DOMParser();
dom = parser.parseFromString(response.data, "text/xml");
}
else {
var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = false;
dom = doc.loadXML(response.data);
}
// Now response is a DOMDocument with childNodes etc.
return dom;
});
}]);
您应该能够使用 $http
来获取 JSON 以外的响应数据。 $http
文档说明默认响应转换之一是 If JSON response is detected, deserialize it using a JSON parser
。 但是,如果您请求其他内容(例如 HTML 模板),response.data
应该具有该 HTML 的字符串值。 事实上,Angular 使用$http
来下拉 HTML 以用于ngInclude
等。
gzip(或在这种情况下解压缩)应该在响应到达$http
之前由浏览器处理。
相关文章:
- http请求使用html而不是json进行响应
- 在不同的javascript数组中对json响应进行排序
- Laravel数据表无效的JSON响应
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 使用来自不同异步函数的响应创建一个json对象
- 无法访问响应 JSON 对象
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- 使用官方 Node.js SendGrid API 发送电子邮件时,响应 JSON 中可能出现哪些错误消息
- 无法从响应 JSON 中删除 html 标记
- 当响应 JSON 对象数据计数为零时,AJAX 成功回调函数重定向到错误回调
- 拆分 AJAX 响应 (JSON)
- jquery ajax 响应中缺少响应 JSON
- AJAX返回200成功,但未能解析响应JSON
- 向声音云响应json添加一个变量
- Node.js请求-Can't获取REST响应(JSON)的属性
- 如何使用javascript在for循环中获取响应json数据
- 下拉列表中未设置 AJAX 响应 JSON 数据
- Fetch api,为什么我必须在响应json()上使用它,试图让承诺有意义
- 如何使用ajax响应JSON数据
- 响应.json() 上的“意外输出结束”错误