.net 6: не удается подключиться из Vuejs к SignalR

#vue.js #asp.net-core #signalr #asp.net-core-signalr #visual-studio-2022

#vue.js #asp.сетевое ядро #сигналр #asp.net-ядро-сигналр #visual-studio-2022

Вопрос:

Я вижу много учебников и следую формату учебника, но мой проект потерпел неудачу.
пожалуйста, ознакомьтесь с моими кодами:
в vs-коде мой vue.js проект:

main.js:

 import VueSignalR from '@latelier/vue-signalr' Vue.use(VueSignalR, 'https://localhost:7082/chathub')  

тест.vue:

 created () {  this.$socket.start({  log: true // Logging is optional but very helpful during development  }) }  

в vs 2022: мой проект хаба:

программа.cs:

 using WebApp2;  var builder = WebApplication.CreateBuilder(args); builder.Services.AddSignalR(); var app = builder.Build();  app.MapGet("/", () =gt; "Hello World!"); app.UseRouting(); app.UseEndpoints(endpoints =gt; {  endpoints.MapHublt;ChatHubgt;("/chathub"); });  app.Run();  

хаб.cs:

 using Microsoft.AspNetCore.SignalR;  namespace WebApp2 {  public class ChatHub : Hub  {  public Task SendMessage(string user, string message)  {  return Clients.All.SendAsync("ReceiveMessage", user, message);  }  } }  

но результат: изображение результата

Комментарии:

1. У меня есть Vue.js v2 SPA работает с .NET 6 с использованием SingleR, но я не использую @latelier/vue-signalr: попробуйте устранить этот компонент, чтобы все заработало. Т. е. у вас меньше компонентов, поэтому легче видеть, что происходит.

2. Пожалуйста, сначала включите Cors в своем веб-приложении .net.

3. Спасибо @Jason Pan

Ответ №1:

добавьте эти коды в program.cs:

 builder.Services.AddCors(options =gt; {  options.AddPolicy(name: "MyPolicy",  builder =gt;  {  builder.WithOrigins(  "http://localhost:8081")  .AllowAnyHeader()  .AllowAnyMethod()  .AllowCredentials();  }); });  

И
app.UseCors("MyPolicy");