Ich verwende SignalR 2.2.0 in einem MVC5-Projekt. SignalR ist clientseitig von JQuery abhängig.
JQuery hat kürzlich eine neue Version veröffentlicht, ich habe sie von Nuget aktualisiert, insbesondere von Version 2.2.4 auf 3.0.0.1, aber dann funktionierte SignalR nicht mehr. Startbefehl „$.connection.hub“ in Javascript schlägt fehl. Nach langem Kopfkratzen führe ich ein Downgrade von JQuery auf 2.2.4 durch und alles ist wieder in Ordnung.
Bin ich der einzige, der dieses Problem hat? Gibt es eine Problemumgehung?
Vielen Dank.
Ich habe das gleiche Problem; aber schlimmer. Upgrade von jQuery von 1.11.x auf 3.4.1. Haben viele Breaking Changes und die meisten davon stammen aus anderen Abhängigkeiten
– Senura Dissanayake
16. Mai 2019 um 5:28 Uhr
@SenuraDissanayake Versuchen Sie, alles zu aktualisieren … Jetzt verwende ich derzeit SignalR 2.4.1 und immer noch JQuery 3.3.1, habe seitdem keine Probleme mit dem Upgrade.
– TNT
16. Mai 2019 um 11:57 Uhr
Quentin Roger
Sie müssen den signalR-Code selbst bearbeiten. In jquery 3 wurde die Verknüpfung für das Ladeereignis entfernt:
Breaking change: .load(), .unload() und .error() entfernt
Diese Methoden sind Abkürzungen für Ereignisoperationen, hatten jedoch mehrere API-Einschränkungen. Die Methode event .load() stand in Konflikt mit der Methode ajax .load(). Die .error()-Methode konnte aufgrund der Art und Weise, wie die DOM-Methode definiert ist, nicht mit window.onerror verwendet werden. Wenn Sie Ereignisse mit diesen Namen anhängen müssen, verwenden Sie die Methode .on(), ändern Sie zB $(“img”).load(fn) in $(img).on(“load”, fn).
Blick auf jquery.signalR-2.2.1.js. Ich finde zum Beispiel immer noch jQuery.fn.unbind(). Ich glaube nicht, dass singalR 2.2.1 noch vollständig bereit für jquery 3 ist
– gis
5. Januar 2017 um 10:19 Uhr
Version 2.2.2 scheint dies zu beheben, es ist kompatibel mit Jquery 3.1.1, wie es kommt.
– Pete Stensønes
25. Juli 2017 um 15:29 Uhr
Simon_Weaver
Wenn Sie nach dem Update auf immer noch solche Fehler erhalten 2.2.1 und jQuery 3.x dann weiterlesen…
TypeError: Cannot read property 'client' of undefined
Wie ich verwendest du wahrscheinlich die dynamisch generierter Proxyund Sie haben Ihre überprüft /signalr/hubs Datei und festgestellt, dass Sie keine Proxys definiert haben.
var proxies = {};
Warten Sie, Sie fragen vielleicht, dass ich nichts geändert habe – wo sind sie hingegangen?
Nun, wie ich hatten Sie es wahrscheinlich so eilig, signalR auf zu aktualisieren 2.2.1 dass Sie es in all Ihren Projekten vergessen haben und jetzt beide verwenden 2.2.1 und 2.2.0 in verschiedenen Versammlungen. (Ich definiere meine Hubs in einer anderen Assembly als meine Haupt-App).
Alles, was ich tun musste, war sicherzustellen, dass ich in jedem Projekt die neueste Nuget-Paketversion hatte, und alles funktionierte. Sollte nach dem Umbau gut funktionieren. Wenn nicht, kann dies auch helfen.
Tun Sie sich auch selbst einen Gefallen und lesen Sie die Upgrade-Leitfaden für jQuery 3 wenn Sie woanders viel jQuery verwenden.
Ich habe das gleiche Problem; aber schlimmer. Upgrade von jQuery von 1.11.x auf 3.4.1. Haben viele Breaking Changes und die meisten davon stammen aus anderen Abhängigkeiten
– Senura Dissanayake
16. Mai 2019 um 5:28 Uhr
@SenuraDissanayake Versuchen Sie, alles zu aktualisieren … Jetzt verwende ich derzeit SignalR 2.4.1 und immer noch JQuery 3.3.1, habe seitdem keine Probleme mit dem Upgrade.
– TNT
16. Mai 2019 um 11:57 Uhr