我的网络应用程序利用从API集线器发送的signalR,适用于所有浏览器。现在,当我尝试在基本html页面中的iframe中添加我的Web应用程序的链接时,我的Web应用程序不会执行我的连接方法。
这是我的网络应用程序中的代码片段:
$.connection.hub.url = 'myUrl';
$.connection.hub.logging = true;
var varHub= $.connection.MyHub;
$.connection.hub.start()
.done(function () { console.log("Signal R connected"); //this is being executed })
.fail(function () { console.log("Could not Connect to signal R hub!"); });
$.connection.hub.disconnected(function () {
setTimeout(function () {
$.connection.hub.start();
}, 5000); // Re-start connection after 5 seconds
});
//Methods to be called by the server for signal R connections
varHub.client.start= function () {
//this is not being called
//do something
};
正如我所说,当我通过网址直接访问它时,我没有任何问题。只有当我尝试在iframe中插入网址时才会出现此问题。
我是这样做的:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=11">
</head>
<body width="1280" height="736" style="margin:0;padding:0;overflow:hidden;border:0px;background:#000000;">
<iframe
src="http://myUrl/Home/Index?Id=someId" style="width:1280px;height:720px;margin:0;paddin:0;overflow:hidden;border:0px;"/>
scrolling="no"/>
</body>
</html>
注意:我的目标浏览器是IE 11。
任何想法都将是一个很大的帮助!感谢。
答案 0 :(得分:0)
对于将来可能遇到此问题的任何人,此参数修复了我的问题。
来源:Here
协商传输需要一定的时间和客户端/服务器资源。如果已知客户端功能,则可以在启动客户端连接时指定传输。以下代码片段演示了如何使用Ajax Long Polling传输启动连接,如果已知客户端不支持任何其他协议,则使用该连接:
$.connection.hub.start({ transport: 'longPolling' })