无法与socket.io建立连接-Angular 7

时间:2019-04-16 13:47:11

标签: angular

我试图在我的角度应用程序中首次使用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.

2 个答案:

答案 0 :(得分:0)

您需要在后端启用cors。

您应该read more了解cors的含义,并在后端启用它

答案 1 :(得分:0)

您看到的错误是不言自明的。如果所访问的当前域不存在于允许的来源(Access-Control-Allow-Origin标头)中,则不能通过ajax或使用Web套接字连接到另一个域。

Mozilla Developer website上有一个关于CORS的很好的解释。

要解决此问题,您需要在尝试访问的后端中添加一些标头:

  • Access-Control-Allow-Origin*(这意味着允许ANY出产,在生产中不是一个好主意!)
  • Access-Control-Allow-MethodsGET,PUT,POST,DELETE,OPTIONS, any other you might need
  • Access-Control-Allow-HeadersAccepts, 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}   });