asp.net
  • signalr
  • signalr-hub
  • 2016-05-30 56 views 1 likes 
    1

    我在我的頁面中動態地在下面引用了兩個庫。當我瀏覽我的應用程序下面提到的錯誤沒有出現在Chrome瀏覽器。但在Internet Explorer中發生錯誤。SignalR未加載。請確保jquery.sigalR-x.js被引用之前〜/ signalr/js

    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."); 
    } 
    

    enter image description here enter image description here

    +0

    如果你在'App_Start/BundleConfig.cs'中有一個'〜/ signalr/js'字段,這個錯誤是可能的。請檢查並做相應的更改。 –

    +0

    @EmreBolat,我的項目不是使用MVC開發的。我在HTML頁面中引用了上面提到的庫。以上代碼在Chrome瀏覽器中運行良好。不在IE中工作。 – RGS

    回答

    3

    一個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

    您的問題是,不知何故,在當前加載的參考文獻的順序是錯誤的。

    相關問題