A、B两个独立网站,都需要账号、密码登录(我有密码),怎么通过js在A站跨域:
例如这两个网站
A:https://www.a.com/
B:https://www.b.com/
目前搜了一些资料
序号 | 查的方法 | 问题/控制台提示 | 备注 |
---|---|---|---|
? | 账号、密码 | 这些参数怎么传过去、登录 | 没基础、刚看过一段时间教程(不系统),方法全靠试有空再找点教程看看 |
1 | cors | 需要B站响应头添加Origin字段,源码没权限无法改,并且响应头里 access-control-allow-origin: http://www.b.com/ 是指向自身的 | 不知道会不会影响A跨域访问 |
2 | iframe、window.name? | Blocked autofocusing on a <input> element in a cross-origin subframe. 状态码:200; 响应头的set-cookie后面黄色三角叹号,提示:……必须为此设置SameSite="None",才能实现跨站点使用。 | 通过脚本片段在A站添加了个iframe,指向B,怎么登陆?控制DOM? |
3 | jsonp | 跨源读取阻止(CORB)功能阻止了 MIME 类型为 application/json 的跨源响应 | |
4 | 代理 | 还没看呢 | |
咋登录是个问题、还有postMessage,还没试呢 |
看了一些本站的方法,好像得有B站代码一定的控制权才行,请问这种问题有哪些解决思路?
非常感谢各位的回复,我再试试!
该回答引用ChatGPT
跨域访问通常是受浏览器同源策略限制的,因此在没有控制B站源代码的情况下,要在A站中跨域访问B站的内容并获取数据比较困难。以下是一些可行的思路:
1、使用 JSONP(JSON with Padding):JSONP是一种跨域数据传输技术,它通过动态创建
可以使用postMessage的方式,在A站(父页面)中传值,向iframe中的B站(子页面)中监听接收:
A站(父页面):
window.onload = function() {
// 需要传的内容
let params = {};
// 向B站传值,其中第二参数表示允许传递和接收的域名, * 表示不限制域名
window.postMessage(params, 'B站地址');
}
B站(子页面):
window.onload = function () {
window.addEventListener("message", function (e) => {
// 获取A站中所传内容
let data = e.data;
})
}