我试图在我的角度应用程序中首次使用Web套接字建立连接。 但它不起作用,并替换了网址路径
我的套接字服务
public initSocket(): void {
this.socket = socketIo('http://11.11.11.111/demo-api/status/');
}
错误
Access to XMLHttpRequest at 'http://11.11.11.111/?EIO=3&transport=polling&t=Meccctccu' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
答案 0 :(得分:0)
您需要在后端启用cors。
您应该read more了解cors的含义,并在后端启用它
答案 1 :(得分:0)
您看到的错误是不言自明的。如果所访问的当前域不存在于允许的来源(Access-Control-Allow-Origin
标头)中,则不能通过ajax或使用Web套接字连接到另一个域。
Mozilla Developer website上有一个关于CORS的很好的解释。
要解决此问题,您需要在尝试访问的后端中添加一些标头:
*
(这意味着允许ANY
出产,在生产中不是一个好主意!)GET,PUT,POST,DELETE,OPTIONS, any other you might need
Accepts, Authorization, Access-Control-Allow-Headers, Access-Control-Request-Headers, Access-Control-Request-Method, DNT, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Content-Range,Range
例如,如果您将Angular应用程序作为电子应用程序运行,则可以禁用CORS检查:Electron (chromium) disable web security
const win = new BrowserWindow({ webPreferences:{webSecurity:false} });