Javascript 加载集线器时出错
我正在使用信号器创建聊天应用程序。我添加了signalr.js1.0.1。 当应用程序启动时,我在global.asax中创建了signalr hub,如下所示:Javascript 加载集线器时出错,javascript,signalr,Javascript,Signalr,我正在使用信号器创建聊天应用程序。我添加了signalr.js1.0.1。 当应用程序启动时,我在global.asax中创建了signalr hub,如下所示: RouteTable.Routes.MapHubs(new Microsoft.AspNet.SignalR.HubConfiguration() { EnableCrossDomain = true }); 但我的问题是它有时会像下面这样向我显示错误 Uncaught Error: SignalR: Error loading
RouteTable.Routes.MapHubs(new Microsoft.AspNet.SignalR.HubConfiguration() { EnableCrossDomain = true });
但我的问题是它有时会像下面这样向我显示错误
Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.
未捕获错误:信号器:加载集线器时出错。确保您的集线器参考是正确的,例如。
编辑:
我已经为signalr动态添加了所有文件
<script lang="javascript" type="text/javascript">
//add all js files for signalR chat dynamically to body
function SetSignalRJs() {
var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "Include/JS/JqueryPlugin/SignalR/jquery.signalR-1.0.1.js");
document.getElementsByTagName("body")[0].appendChild(fileref);
}
function SetHub() {
var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "signalr/hubs");
document.getElementsByTagName("body")[0].appendChild(fileref);
}
function SetChatJs() {
var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "Include/JS/CollectiveIntelligence/ChatApplication.js");
document.getElementsByTagName("body")[0].appendChild(fileref);
}
//apply timeout for all js files
setTimeout(SetSignalRJs, 1000);
setTimeout(SetHub, 5000);
setTimeout(SetChatJs, 6000);
//将signalR聊天的所有js文件动态添加到body
函数SetSignalRJs(){
var fileref=document.createElement('script');
setAttribute(“类型”、“文本/javascript”);
fileref.setAttribute(“src”,“Include/JS/JqueryPlugin/signal/jquery.signal-1.0.1.JS”);
document.getElementsByTagName(“正文”)[0].appendChild(fileref);
}
函数SetHub(){
var fileref=document.createElement('script');
setAttribute(“类型”、“文本/javascript”);
fileref.setAttribute(“src”、“信号器/集线器”);
document.getElementsByTagName(“正文”)[0].appendChild(fileref);
}
函数SetChatJs(){
var fileref=document.createElement('script');
setAttribute(“类型”、“文本/javascript”);
setAttribute(“src”,“Include/JS/CollectiveIntelligence/ChatApplication.JS”);
document.getElementsByTagName(“正文”)[0].appendChild(fileref);
}
//为所有js文件应用超时
设置超时(设置信号RJS,1000);
setTimeout(SetHub,5000);
setTimeout(SetChatJs,6000);
如果要动态加载脚本,应使用脚本加载程序。
对于快速简单的解决方案,您可以尝试使用
对于具有依赖关系管理等功能的更强健的解决方案,值得研究:
您是否在html页面中包含了
/signal/hubs
?请发布你的html和javascript代码。我已经编辑了这个问题。请先尝试更新你的signalR版本,这是一个选项吗?我有时只能看到这个错误。我不明白原因。如果在SetHub之前调用SetChatJS,就会出现错误。但是我已经应用了setTimeout,它不工作,我已经使用了head.js,现在它工作得很好。不需要使用setTimeOut。谢谢你的建议。