【问题标题】:How to handle child http request for collection in angularjs如何在angularjs中处理子http请求收集
【发布时间】: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


【解决方案1】:

听起来您在该请求上遇到了 CORS 问题。最好的办法是将实际 URL 保存到 bookmark.icon 中,然后在需要显示时使用该来源。

<img ng-src='{{ bookmark.icon }}'></img>

【讨论】:

  • 刚试过,但我猜是同样的问题,更新了我的帖子截图...
  • @monstro 查看该屏幕截图,域查询字符串出了点问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 2017-11-01
  • 1970-01-01
  • 2011-03-27
  • 2013-07-27
  • 2017-04-03
  • 1970-01-01
相关资源
最近更新 更多