gpt4 book ai didi

azure - Azure 模拟器中 MVC 中托管的 SignalR 存在来自 JS 客户端的跨域问题

转载 作者:行者123 更新时间:2023-12-01 06:32:13 24 4
gpt4 key购买 nike

我有一个托管在 Azure Web 角色中的 SignalR 中心(名为 EventHub),该角色是在模拟器中运行的 MVC 4 应用程序,地址为 127.0.0.2:81。在我的 Application_Start 中,我有:

RouteTable.Routes.MapHubs(new HubConfiguration { EnableCrossDomain = true });

在通过 IIS 在 localhost:1003 运行的 JS 客户端中,我有:

$.connection.hub.url = 'http://127.0.0.2:81/signalr'; 
$.connection.hub.start().done(alert('connected'));

我的客户端可以连接到集线器并调用其上的方法,但在控制台中,我看到:

XMLHttpRequest cannot load http://127.0.0.2:81/signalr/reconnect?transport=longPolling&connectionToken…&tid=0&_=1380138173967. Origin http://localhost:1003 is not allowed by Access-Control-Allow-Origin.

客户端最终会自行断开连接。如果我使用相同的客户端和几乎相同的集线器实现,并在 localhost:62835 的独立 MVC 应用程序中运行它,我根本不会遇到跨源错误。我在 Chrome v29 中运行它。我没有指定任何自定义 header ,也没有将 jquery cors 支持设置为 true。

azure 模拟器是否引起了一些问题?如果是这样,有什么办法可以解决吗?

更新:

我已将我的 Web 角色发布到 Azure,并且 cors 似乎正在该环境中运行。此外,Chrome 现在使用 websockets 进行连接,而不是连接到模拟器托管的网站时尝试的长轮询。

我仍然希望能够通过模拟器运行它进行本地测试,因此如果有人对如何使其工作有任何想法,我将不胜感激。

最佳答案

对于跨源场景,我没有通过本地 IIS Express SignalR 应用程序的模拟器与 Windows8 上最新的 Azure SDK 遇到任何跨源错误,请确保您的重现中的模拟器已启动。

关于azure - Azure 模拟器中 MVC 中托管的 SignalR 存在来自 JS 客户端的跨域问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19014487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com