我有以下问题。我需要创建一个JS小部件并将其设置在一个博客上,例如来自blogger.com的任何博客。你可以选择一个javascript框,我会在这个框中发布JS。
我所拥有的并且不知道如何执行此操作的问题是,脚本应该为exmaple执行ajax轮询60秒。但是如何执行ajax调用,当主机与主机不同时,JS是包含在哪里?
例如,最简单的解释方法是:有一个搜索框,当enayone搜索anythign时,JS脚本应该从服务器中将结果流式传输60秒,这是我在脚本中设置的,并且与主机,JS是包含的,不会成为主机JS限制的问题。
或者例如聊天客户端,其中客户端托管在另一台主机上,服务器托管在另一台主机上。
有人可以告诉我一个想法,或者给我一个例子如何做到这一点?
由于 NIK
这个例子是否有可能但没有JSONP?
function asyncreq(url) {
var xmlhttp = false;
try {
xmlhttp = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
xmlhttp = false;
}
}
}
if (xmlhttp){
try {
xmlhttp.open("GET", url);
xmlhttp.onreadystatechange=function() {
document.getElementById('mydiv').innerHTML = xmlhttp.responseText;
}
xmlhttp.send(null);
}
catch (failed) {
xmlhttp = false;
}
}
}
如果您以块的形式发送响应,那么一切都很好。但这是再次呼吁ajax。当我在不同的主机中使用它时,由于同源策略,我无法调用该URL。
还有其他办法吗?
我找到了一个非常有趣的例子here。
看看底部,有一个求职框。如果你研究了一个litte位,那么你会看到有一个类RSL()的用法正在执行请求。这个类如何在没有ajax的情况下执行请求?我无法理解这个班的作品。有人能告诉我一个更好的例子吗?
答案 0 :(得分:0)
有两个主要选项:
将iframe放在您希望窗口小部件移动的位置。其src
URL将位于将接收AJAX调用的同一服务器上。
使用JSONP,它包括在页面中插入脚本标记以绕过同源策略。这要求AJAX服务器将其JSON输出包装在?(...)
中,其中URL包含callback=?
。然后,只要收到回复,就开始另一个请求。