对于这类纯 json 参数的跨域 api,纯前端手段是否有可能拿到呢?

2021-12-19 11:28:59 +08:00
 mostkia

这是一个 api ,是 bing 的每日壁纸: https://cn.bing.com/HPImageArchive.aspx?n=1&format=js&idx=0

打开后,前端得到的是一串匿名的 json 数据,没有赋值给任何变量,也没有输入到任何一个 callback 函数中,所以无法做到通过 jsonp 来得到数据,但直接通 ajax 来获取又会出现跨域报错,单纯靠前端有无办法利用这类 api 吗?

或者换句话说,假设我在控制台输入一串纯 json 数据,没有复值和传入函数中,它是以什么形式存在于内存中的?还是说输入后就已经丢失了?

3579 次点击
所在节点    程序员
25 条回复
janxin
2021-12-19 18:22:01 +08:00
浏览器 Extension
mostkia
2021-12-19 21:02:46 +08:00
除了速度慢一些,没毛病 @Mutoo 随便试了 2 个项目:分别是 http://www.whateverorigin.org/和 https://allorigins.win/ 前者不支持 https 和 ajax 请求,后者直接支持 https 和 cors ,所以没提供 jsonp 支持输出依旧是原始数据,挺好的。对于懒癌或者不想折腾服务器配置的人的确几乎等于纯前端的方案了,但密集请求或者追求高稳定的服务,还是自己搭一个在本地比较靠谱。
mostkia
2021-12-19 21:06:00 +08:00
@justin2018 可以,没毛病,都是类似的技术。但的确解决了问题。谢谢解答的朋友
rpman
2021-12-19 22:57:06 +08:00
如果有不走代理就能跨域的方法,那就是浏览器的安全性 bug
SmiteChow
2021-12-20 09:54:03 +08:00
使用 extension 突破 我写了一个 https://github.com/DistPub/escape-cookie-samesite-policy 缺文档警告

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX