加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 跨域请求在SignalR 2.0.0-rc1中不起作用

发布时间:2020-12-15 18:25:05 所属栏目:百科 来源:网络整理
导读:我最近将一个项目从SignalR 2.0.0-beta1升级到2.0.0-rc1.据我所知,在RC1中,对跨域请求的支持配置发生了变化.我已经更新了我的项目以使用新语法,但是在尝试与我的集线器通信时,我现在收到以下错误: XMLHttpRequest cannot load =1377623738064″http://local
我最近将一个项目从SignalR 2.0.0-beta1升级到2.0.0-rc1.据我所知,在RC1中,对跨域请求的支持配置发生了变化.我已经更新了我的项目以使用新语法,但是在尝试与我的集线器通信时,我现在收到以下错误:

XMLHttpRequest cannot load
=1377623738064″>http://localhost:8080/negotiate?connectionData=%5B%7B%22name%22%3A%22chathub%22%7D%5D&clientProtocol=1.3&=1377623738064.
Origin http://localhost:7176 is not allowed by
Access-Control-Allow-Origin.

客户端站点在http:// localhost:7176上运行,并且集线器正在通过http:// localhost:8080上的控制台应用程序进行侦听.我在这里错过了什么吗?在我升级到RC1之前,跨域请求正在运行.

CONSOLE APP入口点

static void Main(string[] args)
{
    var chatServer = new ChatServer();
    string endpoint = "http://localhost:8080";

    chatServer.Start(endpoint);

    Console.WriteLine("Chat server listening at {0}...",endpoint);
    Console.ReadLine();
}

CHATSERVER CLASS

public class ChatServer
{
    public IDisposable Start(string url)
    {
        return WebApp.Start<Startup>(url);
    }
}

启动配置

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.Map("/signalr",map =>
        {
            map.UseCors(CorsOptions.AllowAll);
            map.RunSignalR(new HubConfiguration { EnableJSONP = true });
        });
    }
}

解决方法

您的客户端配置有问题.

XMLHttpRequest无法加载= 1377623738064“> http:// localhost:8080 / negotiate?connectionData = [{”name“:”chathub“}]& clientProtocol = 1.3& = 1377623738064.Origin http:// localhost:7176 is Access-Control-Allow-Origin不允许.

协商请求应该发送到http:// localhost:8080 / signalsr / negotiate?…不是http:// localhost:8080 / negotiate?….要解决这个问题,你可以在调用$之前尝试以下方法. connection.hub.start:

$.connection.hub.url = http:// localhost:8080 / signalsr;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读