【问题标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource - socket.io请求的资源上没有“Access-Control-Allow-Origin”标头 - socket.io
【发布时间】:2018-12-02 11:39:00
【问题描述】:

有一个 node.js 服务正在监听 port:8080,我的 asp.net mvc 应用程序需要使用 socket.io 与 node.js 服务通信

这在本地主机上运行良好。但是在我的 AWS EC2 实例中发布 mvc 和 node.js 项目后得到 502 和 522 错误代码。

Node.js

 var jsonfile = require('jsonfile');
    var app = require('express')();
    var http = require('http').Server(app);
    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    var xhr = new XMLHttpRequest();
    var querystring = require('querystring');
    var io = require('socket.io')(http);
    var uniqid = require('uniqid');

    io.set('origins', 'www.mydomain.com:80');

【问题讨论】:

  • 你说的是8080端口,但io.set()显示的是80端口。

标签: node.js amazon-ec2 socket.io cross-domain


【解决方案1】:

你可以试试:

io.set('origins', '*:*');

阅读更多关于origins

【讨论】:

  • @OshadaEkanayake 好的试试这个:io.origins(':') ;
  • @OshadaEkanayake 请检查您的防火墙设置,我认为您的端口未启用。
  • 我用 telnet 客户端检查了 8080 端口。但是8080端口没有被阻塞
  • 为 8080 端口添加防火墙入站规则后问题已解决。感谢您的支持 :)
  • @OshadaEkanayake - 这有点奇怪,因为您接受了这个答案(也许是因为 Gausul 确实帮助了您),但答案本身并没有描述实际的解决方案。似乎 Gausul 应该编辑答案以包含实际解决方案,或者您应该接受您的答案,即解决方案。因此,如果有人阅读了您的问题和接受的答案,您实际上并没有对问题的解决方案有正确的印象。不应该是这样的。
【解决方案2】:

为端口 8080 添加防火墙入站规则后问题得到解决。

【讨论】:

    猜你喜欢
    • 2017-02-07
    • 2023-03-16
    • 2014-07-30
    • 2016-01-14
    • 2023-03-15
    • 2015-10-30
    • 2019-10-07
    • 2021-09-28
    • 2021-02-23
    相关资源
    最近更新 更多