gpt4 book ai didi

javascript - 由另一个域的 javascript 文件发出的 AJAX 请求

转载 作者:行者123 更新时间:2023-11-30 00:10:18 25 4
gpt4 key购买 nike

在同一台计算机上运行两个具有以下 URL 的 Visual Studio:

  1. http://localhost:47503 (网络 API,#1)

  2. http://localhost:12345 (调用上面 web api 的客户端,#2)

客户端 (#2) 硬编码站点 #1 的 <script src="http://localhost:47503/file.js"></script> . file.js 中有一个函数:

function GetData() {
$.ajax({
url: 'http://localhost:47503/api/autos',
type: 'GET',
dataType: 'json',
data: { "a": '_1', "b": 'TEST', "c": "val c" },
success: function (result) {
alert("success");
}
});

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:47503/api/autos?a=_1&b=TEST&c=value+c. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

认为由于脚本是从客户端 #1 加载的,它可以从客户端 #2 调用从而以某种方式绕过同源策略?来自 Client #1 的脚本回调到 Client #1。 JSONP 和 CORS 是已知的问题解决方案,但想知道上述是否可行。

最佳答案

Thought that since script was loaded from Client #1, that it could be invoked from Client #2 hence bypassing the same origin policy in a way?

不,这是不可能的。来源始终是文档的来源,而不是单个脚本标签。这就是您能够从 CDN 加载 jQuery 等库,但向您自己的服务器发出 AJAX 请求的方式。


附带说明一下,即使来源是由进行调用的脚本确定的(从来没有),您的代码仍然无法正常工作,因为它实际上是 jQuery 进行 AJAX 调用。

关于javascript - 由另一个域的 javascript 文件发出的 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36781444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com