我在页面中动态引用了两个库。当我浏览我的应用程序时,下面提到的错误没有进入Chrome浏览器。但是在Internet Explorer中会发生错误。
var signalRLibrary = document.createElement('script');
signalRLibrary.type = "text/javascript";
signalRLibrary.src = 'jquery.signalR-2.1.2.min.js';
document.getElementsByTagName('head')[0].appendChild(signalRLibrary);
var signlaRHub = document.createElement('script');
signlaRHub.type = "text/javascript";
signlaRHub.src = "~/signalr/hubs";
document.getElementsByTagName('head')[0].appendChild(signlaRHub);
在页面加载期间,由于未加载SignalR,因此出现以下错误。请确保在〜/ signalr / js之前引用jquery.signalR-x.js。
if (typeof ($.signalR) !== "function") {
throw new Error("SignalR: SignalR is not loaded. Please ensure jquery.signalR-x.js is referenced before ~/signalr/js.");
}
答案 0 :(得分:5)
JavaScript客户端需要引用jQuery和SignalR核心 JavaScript文件。 jQuery版本必须是1.6.4或更高版本 版本,例如1.7.2,1.8.2或1.9.1。如果你决定使用 生成代理,您还需要对SignalR生成的引用 代理JavaScript文件。以下示例显示了引用内容 可能看起来像在使用生成的代理的HTML页面中。
<script src="Scripts/jquery-1.10.2.min.js"></script> <script src="Scripts/jquery.signalR-2.1.0.min.js"></script> <script src="signalr/hubs"></script>
这些引用必须包含在此顺序中:首先是jQuery,SignalR 之后的核心,以及SignalR代理的最后一次。
- 来自ASP.NET SignalR Hubs API Guide - JavaScript Client
你的问题是,不知何故,你加载引用的顺序是错误的。