是否可以通过ajax获取“Bing每日一图”?

发布于 2022-09-01 06:21:33 字数 1398 浏览 9 评论 0

浏览器访问“Bing每日一图API” http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1 可以看到返回了一个json,其中包含图片url:
clipboard.png

首先我尝试通过json的方式来获取这个url:

$.ajax({
        url: 'http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1',
        cache: false,
        dataType: 'json',
        success: function (data) {
                debugger;
            });
        }
    });

但是得到的是一个js报错(跨越问题):

clipboard.png


于是我尝试使用jsonp的方式来获取:

$.ajax({
        url: 'http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1',
        cache: false,
        dataType: 'jsonp',
        success: function (data) {
                debugger;
            });
        }
    });

但是依然报错:
clipboard.png

这是怎么一回事? jsonp请求为何报错? 是Bing API的问题还是我请求的姿势不对?

是不是API提供了callback参数才能使用JSONP请求? 还有上面采用JSONP的方式请求时,为什么会报 Unexpected tothen : 错误?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

青衫负雪 2022-09-08 06:21:33

想获取的话基本就要靠代理了。视具体需求需要,如果不想自己写的话,可以使用这个工具 https://jsonp.afeld.me/

转角预定愛 2022-09-08 06:21:33

这个请求确实不是jsonp接口的,可以看到返回的内容还是一段json,但不是jsonp所要求的函数包裹的形式。

绝不放开 2022-09-08 06:21:33

它返回的是json,所以jsonp是不行的,不过可以用php或java调用接口,然后ajax获取

好倦 2022-09-08 06:21:33

jsonp本来就需要服务器支持。
需要服务器支持你的callback参数,
然后使用callback参数调用你的js函数,不是直接想用就能用哦~

↘紸啶 2022-09-08 06:21:33

你可以用爬虫来拿这个数据。前端会有跨域的问题,也是需要服务器支持的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文