在过去的 N 年里,我多次需要我自己的页面 (ABC.com) 从不同的来源 (XYZ.com) 获取一些数据并显示它(全部在 JavaScript 中,没有服务器获取)。
这不起作用,因为 XYZ.com 的Access-Control-Allow-Origin
标题中没有 ABC.com。如果标头确实包含 ABC.com,那么我的浏览器的 XYZ.com cookie(即身份验证 cookie)将与请求一起发送到 XYZ.com。我完全理解如果浏览器没有访问权限,为什么浏览器会阻止 ABC.com 向 XYZ.com 发出经过身份验证的请求。
但在我的所有场景中,向 XYZ.com 发出的请求都是可供公众使用的资源,不需要身份验证/cookie,任何人都可以获取它们。我知道有解决方法(有 ABC.com服务器从 XYZ.com 请求数据)。或者 XYZ.com 可以发布 JSONP。但在我的情况下,有时我从本地文件系统提供我的文件,所以没有服务器。从服务器获取它是一个 PITA。最后,我没有控制 XYZ.com,也不能强迫它也发布 JSONP。n 问题的核心 - 如果 ABC.com 不在 XYZ.com 的访问控制标头中,为什么浏览器不允许 ABC.com 的 JavaScript 向 XYZ.com 发出请求但不发送任何 XYZ。 com 的 cookie 存储在该用户的浏览器中。如果浏览器制造商这样做,这是否会使用户面临某种其他漏洞?因为我什么都想不出来。我错过了什么?只是人力的事情,编程会花费太多时间吗?