【发布时间】:2018-10-07 13:53:22
【问题描述】:
在我的 service.ts 中,我阅读了包含书签列表的 bookmarks.json。
对于每个书签,我想通过调用来设置一个网站图标
https://www.google.com/s2/favicons?domain=...
这是完成这项工作的函数
getBookmarks() {
return this.$http.get('data/bookmarks.json').then((response: any) => {
let bookmarks = response.data;
bookmarks.forEach(bookmark => {
this.$http.get('https://www.google.com/s2/favicons?domain=' + bookmark.url).then(response2 => {
bookmark.icon = response2.data;
})
});
return bookmarks;
});
};
显然我做的不对。
代码永远不会命中
bookmark.icon = response.data;
我做错了什么?谢谢。
每个书签我都得到相同的错误集:
可能未处理的拒绝: {"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback" ,"url":"https://www.google.com/s2/favicons?domain=https://app.pluralsight.com/library/","headers":{"接受":"application/json, 文本/纯文本,/"}},"statusText":"","xhrStatus":"error"}
如果我只是设置:
bookmark.icon = 'https://www.google.com/s2/favicons?domain=' + bookmark.url;
然后我仍然收到一堆带有 400 错误代码的请求
看起来是同一个问题……
更新
愚蠢的我:)
这就像一个魅力:)
<img ng-src="https://www.google.com/s2/favicons?domain={{bookmark.url}}" />
【问题讨论】:
-
您是否从请求中返回 200 状态码?我也认为你想要
bookmark.icon = response2.data,但显然这与问题无关 -
就做类似
bookmark.icon = "https://www.google.com/s2/favicons?domain=google.com" -
我猜你在控制台日志中得到了类似的东西:
preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource这如果是真的意味着除了尝试让谷歌制作一些服务器之外你无能为力改变或改变你的方法 -
像 Url 一样使用它
-
我会尝试别的......
标签: angularjs