gpt4 book ai didi

javascript - 将Http Header 添加到静态文件解决 "Script Error"

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:31 30 4
gpt4 key购买 nike

一周以来,我一直在用头撞墙试图解决这个问题。希望有人能看到我遗漏的东西。

我有两个项目:localhost:A (Web-Api) 托管一个 js 文件,localhost:B (.NET MVC) 使用该 js 文件。当试图捕获 js 文件中的错误并将其发送到 localhost:A 时,我收到了一条神秘的 Script Error 消息,而不是实际错误。

Google 快速搜索告诉我这是一种防止 localhost:A 收集有关客户端的信息的安全措施。为了解决这个问题,我需要做两件事:

  1. 添加 crossorigin='anonymous' localhost:B 对 js 文件的引用
  2. 将 HttpHeader Access-Control-Allow-Origin="*" 添加到 js 文件响应中。

我找到了几种在 Web-Api 上执行 2. 的方法,但似乎都不起作用。

我试过像这样在 Web.config 文件中添加 header :

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
</customHeaders>
<httpProtocol>

我试过像这样在 Global.asax.cs 文件中添加 header :

public static void Register(HttpConfiguration config)
{
var corsAttr = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(corsAttr);

config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}

我试过像这样在 Startup.cs 文件中添加 header :

public void Configuration(IAppBuilder app)
{
//app.UseCors(CorsOptions.AllowAll);<--and here
app.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration
{
EnableDetailedErrors = true
};
map.RunSignalR(hubConfiguration);
});
}

HTTP 和 SignalR 传输与 header 一起发生,但正在获取的文件缺少 header 。

我错过了什么?

编辑:这是当前请求和响应 header 的屏幕截图: enter image description here

编辑 2:如果我删除 startup.cs 中的代码,并在 web.config 中添加代码,我会开始获取 header ,但也会开始获取寻找信号器/集线器的 404 响应。将代码放在 startup.cs 和 webconfig 中会给我这个错误:The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

最佳答案

我一直没能找到解决办法。我最终为 js/css 文件创建了一个 CDN,这允许我在 web.config 中设置自定义 header ,同时将信号器配置保留在另一个项目中。

关于javascript - 将Http Header 添加到静态文件解决 "Script Error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57041230/

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