web-dev-qa-db-ja.com

ASP.NET Core 2.1 SignalRが定義されていません

これは私のチャットJavaScriptです

"use strict";

var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();

connection.on("ReceiveMessage", function (message) {
    var msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    var encodedMsg = msg;
    var li = document.createElement("li");
    li.textContent = encodedMsg;
    document.getElementById("Messages").appendChild(li);
});

connection.start().catch(function (err) {
    return console.error(err.toString());
});

document.getElementById("Send").addEventListener("click", function (event) {
    var message = document.getElementById("Message").value;
    connection.invoke("SendMessage", message).catch(function (err) {
        return console.error(err.toString());
    });
    event.preventDefault();
});

これは、チャット入力でページを実行すると発生するエラーです。

Uncaught ReferenceError:signalR is not defined at chat.js:3

chat.jsの3行目は次のとおりです。

var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();

Visual Studio Add Client Side LibraryからSignalRクライアントライブラリをダウンロードしました。私が今持っているのはjquery.signalR.jsというファイルで、ASP.NET SignalR JavaScriptライブラリ2.4.0です

ただし、このエラーは解消されず、何らかの理由で続行できません。

6
JianYA

これをHTMLで使用していますか?

<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>

From: https://docs.Microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr

編集:

Jquery-signalrを使用する場合は、jqueryの依存関係を追加することを忘れないでください

<!--Reference the jQuery library. -->
<script src="Scripts/jquery-3.1.1.min.js" ></script>
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>
0
Fy Z1K

私の場合、sjgnalr.jsファイルとchat.jsファイルの順序を忘れています。

  <script src="~/lib/signalr/dist/browser/signalr.js"></script>
    <script src="~/js/chat.js"></script>

私の間違いは仲間とし​​てでした:

  <script src="~/js/chat.js"></script>
      <script src="~/lib/signalr/dist/browser/signalr.js"></script>

原因私はjsファイルの順序を気にしていないので、SignalRは定義されていませんが通常です。

0
iman mohadesi