gpt4 book ai didi

javascript - signalR 未定义,但 signalr.js 已加载到调试器中

转载 作者:行者123 更新时间:2023-12-03 02:15:26 27 4
gpt4 key购买 nike

我正在尝试将 SignalR 用于 ASP.NET Core 2.0,但是当我尝试在 View 中实现 SignalR 客户端时,我收到错误消息:尽管自动完成功能在编辑器中运行良好,但变量“signalR”未定义,这是脚本:

<script type="text/javascript">
var _transport = signalR.TransportType.WebSockets; //HERE
var connection = new signalR.HubConnection(`http://${document.location.host}/chat`, {transport: _transport});

var messageInput = document.getElementById('message');
var name = '@User.Identity.Name';
var button = document.getElementById('sendMessage');

connection.on('broadcastMessage', (name, message) => {
var text = document.createElement('p');
text.innerHTML = '<strong>' + name + '</strong>' + "&nbsp;:&nbsp;" + message;

document.getElementById('messageArea').appendChild(text);
});

button.addEventListener("click", event => {
connection.invoke('send', name, messageInput.value);
messageInput.value = '';
messageInput.focus();
});

connection.start();

我已在我的 _Layout.cshtml 中添加了 signalr.js Environment include in _Layout.cshtml

这是我的 wwwroot 的树结构,我在其中添加了信号器的 .js 文件:

Tree structure in wwwroot

最后,这是 Firefox 中的调试器结构,我可以看到 signalr.js 已加载,jQuery 和 bootstrap 也已加载。

signalr correctly loaded..?

那么为什么“signalR”未定义?我缺少什么?是因为我在项目中手动添加了信号器 javascript 文件吗? (可能...)

最佳答案

我认为您的脚本是在加载 signalr.js 之前执行的。尝试使用事件来执行您的代码。如果我们在文档加载时执行此操作,那么我们将确保它已被定义。

$(document).load(function(){
// your code here
});

关于javascript - signalR 未定义,但 signalr.js 已加载到调试器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49385819/

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