jsonp如何拦截window.location.href;

发布于 2022-09-30 23:11:05 字数 307 浏览 31 评论 0

问题: 使用 jsonp 获取接口数据时, 偶尔接口会返回 window.location.href = *** 然后页面直接跳转了

期待解决: jsonp 能否获取接口返回的文本, 这样我就可以判断内容是否有跳转来决定是否执行接口返回的js文本(eval)

尝试过的方法: 无法使用axios等XHR技术去请求接口, 因为接口是第三方提供, 有跨域无解, 我试着使用 new Image().src 去缓存, 但我该如何获取 jsonp 返回的文本呢

有了解的大佬烦请给个思路, 洒家有礼了

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

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

发布评论

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

评论(2

大姐,你呐 2022-10-07 23:11:05

JSONP 实现之所以要用函数来变通地获取返回结果,就是因为没有别的办法获取文本,所以先获取文本处理后再eval是不可能的。

试了一下, Object.defineproperty 无法拦截 window.locationLocation的原型链也没有找到href,感觉像是被保护起来了。
剩下的方案就只有iframeiframe 虽然也是直接跳转,但至少宿主页面不会被其 location 影响。
不过如果我是开发 JSONP 的人,我也会想到 iframe ,顺便把 window.top 也跳转了。
但是值得一试。

相守太难 2022-10-07 23:11:05

这都什么年代了,如果第三方无法修改,直接自己这边加一个 Nginx 代理,给请求加上 CORS 头就可以了,几行 Nginx 配置的事情。

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