【问题标题】:Socket.io angularjs client not connected due to CORS error由于 CORS 错误,Socket.io angularjs 客户端未连接
【发布时间】:2015-07-25 17:12:21
【问题描述】:

我最近从 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

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

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

http://localhost:8100

似乎没有任何帮助。

【问题讨论】:

    标签: angularjs socket.io cors steroids supersonic


    【解决方案1】:

    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(可能还有其他 Web 服务)真是一场噩梦!!!

    我改成:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多