内容安全策略阻止了与 Signalr Hub 的连接
Connection to signalr hub blocked by content security policy
我正在使用 Electron 与 React 和 Typescript 构建应用程序。我有一个用于聊天功能的 SignalR 中心。当我尝试连接到我的 SignalR 服务器时,出现以下错误
Image of error
项目是根据以下指南设置的:https://www.electronforge.io/guides/framework-integration/react-with-typescript
我觉得奇怪的是,当我构建电子应用程序时,它可以毫无问题地连接到 SignalR 集线器。但是我不能每次都想测试它就构建应用程序。我在 index.html 文件中尝试了很多不同的元标记,并且 none 似乎有效。我的理解是我需要设置 connect-src 但每当我将它添加到我的 html 元标记时它仍然说它没有设置。
这可能是一个非常容易解决的问题,但我从未处理过内容安全策略,当反应在浏览器中自行 运行 时,这对我来说从来都不是问题。
当前元标记如果有帮助:
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' http: https: data: gap: ws: https://localhost:44396/* 'unsafe-inline' 'unsafe-eval';">
提前致谢
因此,经过反复试验后,我将 post 我是如何解决它的。如果这是一个糟糕的解决方案,请告诉我,但现在我想我会移动一个。但为了解决这个问题,我在电子中添加了 CSP 设置,而不是在 index.html
中添加
我在 index.ts 中添加了以下代码:
session.defaultSession.webRequest.onHeadersReceived(((details, callback) => {
callback({
responseHeaders: {
...details.responseHeaders,
'Content-Security-Policy': ['connect-src * ws: http: https: \'self\'']
}
});
}));
我正在使用 Electron 与 React 和 Typescript 构建应用程序。我有一个用于聊天功能的 SignalR 中心。当我尝试连接到我的 SignalR 服务器时,出现以下错误 Image of error
项目是根据以下指南设置的:https://www.electronforge.io/guides/framework-integration/react-with-typescript
我觉得奇怪的是,当我构建电子应用程序时,它可以毫无问题地连接到 SignalR 集线器。但是我不能每次都想测试它就构建应用程序。我在 index.html 文件中尝试了很多不同的元标记,并且 none 似乎有效。我的理解是我需要设置 connect-src 但每当我将它添加到我的 html 元标记时它仍然说它没有设置。
这可能是一个非常容易解决的问题,但我从未处理过内容安全策略,当反应在浏览器中自行 运行 时,这对我来说从来都不是问题。
当前元标记如果有帮助:
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' http: https: data: gap: ws: https://localhost:44396/* 'unsafe-inline' 'unsafe-eval';">
提前致谢
因此,经过反复试验后,我将 post 我是如何解决它的。如果这是一个糟糕的解决方案,请告诉我,但现在我想我会移动一个。但为了解决这个问题,我在电子中添加了 CSP 设置,而不是在 index.html
中添加我在 index.ts 中添加了以下代码:
session.defaultSession.webRequest.onHeadersReceived(((details, callback) => {
callback({
responseHeaders: {
...details.responseHeaders,
'Content-Security-Policy': ['connect-src * ws: http: https: \'self\'']
}
});
}));