我在MVC5项目中使用SignalR 2.2.0. SignalR依赖于客户端中的
JQuery.
JQuery最近发布了新版本,我从Nuget更新,特别是2.2.4版本到3.0.0.1版,但是SignalR停止工作. javascript中的启动命令“$.connection.hub”失败.
经过很长时间的头痛,我将JQuery降级到2.2.4,一切都很好.
我唯一得到这个问题吗?有什么解决方法吗?
谢谢.
解决方法
您必须自己编辑signalR代码,在jquery 3中,它们删除了加载事件的快捷方式:
Breaking change: .load(),.unload(),and .error() removed
These methods are shortcuts for event operations,but had several API
limitations. The event .load() method conflicted with the ajax .load()
method. The .error() method could not be used with window.onerror
because of the way the DOM method is defined. If you need to attach
events by these names,use the .on() method,e.g. change
$(“img”).load(fn) to $(img).on(“load”,fn).
https://jquery.com/upgrade-guide/3.0/
所以在文件jquery.signalR- {version} .js:
您必须更新此行:
_pageWindow.load(function () { _pageLoaded = true; });
至 :
_pageWindow.on("load",function () { _pageLoaded = true; });