请问如何用js跨域获取数据

A、B两个独立网站,都需要账号、密码登录(我有密码),怎么通过js在A站跨域:

  • 一、登录?
  • 二、访问B站的内容、表格数据?
    (网站源代码没控制权)

例如这两个网站
A:https://www.a.com/
B:https://www.b.com/

目前搜了一些资料

序号查的方法问题/控制台提示备注
?账号、密码这些参数怎么传过去、登录没基础、刚看过一段时间教程(不系统),方法全靠试有空再找点教程看看
1cors需要B站响应头添加Origin字段,源码没权限无法改,并且响应头里 access-control-allow-origin: http://www.b.com/ 是指向自身的不知道会不会影响A跨域访问
2iframe、window.name?Blocked autofocusing on a <input> element in a cross-origin subframe.
状态码:200;
响应头的set-cookie后面黄色三角叹号,提示:……必须为此设置SameSite="None",才能实现跨站点使用。
通过脚本片段在A站添加了个iframe,指向B,怎么登陆?控制DOM?
3jsonp跨源读取阻止(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;
  })
}