JavaScript保存来自ajax请求的数据
JavaScript Saving data from an ajax request
挑战:在URL1(随机维基百科页面)上,向URL2(100个最常见的单词维基百科页面)发出ajax请求,从返回的数据中格式化一个列表,以便稍后使用。
我必须在"URL1"上从控制台运行此程序示例:
- 导航到URL1
- 打开控制台
- 粘贴代码
- 点击回车
到目前为止,我已经能够在URL1上使用以下内容获取整个html源代码:
$.ajax({
url: 'https://en.wikipedia.org/wiki/Most_common_words_in_English',
type: 'GET',
dataType: 'html',
success: function (response) {
console.log(response); // works as expected (returns all html)
}
});
我可以在控制台中看到整个HTML源代码——然后我去URL2了解如何获取和格式化我需要的内容,我可以使用
var array = $.map($('.wikitable tr'),function(val,i){
var obj = {};
obj[$(val).find('td:first').text()] = $(val).find('td:last').text();
return obj;
});
console.log(JSON.stringify(array));
这就是我的问题所在——将两个结合起来
$.ajax({
url:'https://en.wikipedia.org/wiki/Most_common_words_in_English',
type:'GET',
dataType:'html',
success: function(data){
// returns correct table data from URL2 while on URL2 -- issue while running from URL1
var array = $.map($('.wikitable tr'),function(val,i){
var obj = {};
obj[$(val).find('td:first').text()] = $(val).find('td:last').text();
return obj;
});
console.log(JSON.stringify(array));
};
});
我猜这是因为我想要映射的HTML现在是一个字符串,而我的数组正在当前页面上寻找它当然找不到的HTML元素。
感谢
这里简单修复!你说得对,它并没有解析你返回的html,所以只需告诉jQuery将其转换为一个可以使用$(data)
的对象,并使用它来查找你需要的内容。
从本质上讲,您的"文档"现在变成了$(data)
,您将使用它作为所有查询的来源。
$.ajax({
url: 'https://en.wikipedia.org/wiki/Most_common_words_in_English',
type: 'GET',
dataType: 'html',
success: function(data) {
var myVar = data;
Names = $.map($(myVar).find('.wikitable tr'), function(el, index) {
return $(el).find('td:last').text()
});
console.log(Names);
}
});
相关文章:
- node.js请求数据事件未在CORS ajax调用中触发
- 一台特定计算机的Ajax请求数据未定义/失败
- 如何在具有某些 UI 视图的状态中管理工厂单个请求数据
- Hapi-js重定向到另一个带有额外请求数据的路由
- 将所有angular2捆绑包包含在index.html中会使导入从内存获取数据,而不是再次从服务器请求数据
- jQuery 和 Ajax 请求数据问题
- Symfony2将ajax请求数据传递给表单呈现控制器
- JQuery ajax请求数据
- 如何在浏览器中压缩json请求数据
- 点击按钮从服务器nodejs请求数据
- 在zapier中发送请求数据时出现空指针异常
- 如何显示弹出窗口以在使用纯 JavaScript 从 Web 服务器获取/请求数据时禁用搜索按钮
- 如何发出请求数据的提示
- 每x秒从服务器请求数据的最佳方法
- 在页面上存储 Ajax 请求数据的最佳方式
- 如何在 d3 中从 json 请求数据
- 在 chrome 调试器中更改 XHR 请求数据
- 使用 jQuery 从 NodeJS 服务器请求数据
- 节点.JS请求数据长度小于内容长度中给出的数据长度
- 过滤列表并通过 ajax 请求数据