Socket.io angularjs 由于 CORS 错误,客户端未连接

Socket.io angularjs client not connected due to CORS error

我最近从 Ionic 框架移植了一个应用程序。我的应用程序使用了 socket.io,它在 ionic 中完美运行。

它在类固醇/超音速中不能正常工作。当客户端尝试使用 socket.io:

连接到我的 nodejs 服务器时,我得到以下信息
Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.

当我在 ionic 中没有这个错误时,为什么我在超音速中得到这个?当前服务器在 .htaccess 中有以下内容:

Header set Access-Control-Allow-Origin http://localhost:8100

我的 socket.io 脚本在 common/layout.html 中加载,这意味着它加载了应用程序中的所有视图。

node.js 服务器未更改,配置与基本 socket.io docs 类似。

我很难过。网上有一百万零一个关于这个特定错误的帖子,还有一百万零一个关于如何修复的建议......none 其中帮助我解决了这个问题。由于这是一个移动混合应用程序,因此当应用程序在真实设备上 运行 时,客户端不会发送来源。但现在我在 iOS 模拟器上并使用 Safari 检查器查看为什么我无法保持 socket.io 连接。

我尝试使用 express cors 包和其他方法来覆盖具有特定来源的“*”通配符设置:

http://localhost:8100

似乎没有任何帮助。

Supersonic 应用在 app.coffee 中的配置设置如下:

network:
extraResponseHeaders:
"Access-Control-Allow-Origin": "*"
"Access-Control-Allow-Headers": "Content-Type, X-Requested-With"

如此处所述:

http://docs.appgyver.com/supersonic/guides/architecture/app-config-files/#app-coffee

使用 socket.io(可能还有其他网络服务)真是一场噩梦!!!

我改为:

"Access-Control-Allow-Origin": "http://localhost"

...并且能够连接到我的 socket.io 服务器。