Javascript 强制请求其他域上的URL

Javascript 强制请求其他域上的URL,javascript,jquery,Javascript,Jquery,当用户单击链接时,我需要向另一个域上的页面发出请求,以保持该域上的会话处于活动状态。我不关心响应数据(可能除了状态码,这样我可以确保页面没有关闭)。我尝试通过$.ajax发出请求,但同源策略不允许这样做 让请求通过的最佳方式是什么 我应该在我的页面上写一个iframe吗?脚本标签?$.ajax中是否有一个选项可以让它工作 编辑:我还需要知道请求何时通过,以便我可以在之后做一些事情(例如,我想要回拨) 添加dataType:'jsonp'某种程度上可以让它工作,但我不希望它执行站点返回的任何内容

当用户单击链接时,我需要向另一个域上的页面发出请求,以保持该域上的会话处于活动状态。我不关心响应数据(可能除了状态码,这样我可以确保页面没有关闭)。我尝试通过
$.ajax
发出请求,但同源策略不允许这样做

让请求通过的最佳方式是什么

我应该在我的页面上写一个iframe吗?脚本标签?
$.ajax
中是否有一个选项可以让它工作

编辑:我还需要知道请求何时通过,以便我可以在之后做一些事情(例如,我想要回拨)


添加
dataType:'jsonp'
某种程度上可以让它工作,但我不希望它执行站点返回的任何内容,这似乎是在做。我请求的页面是一个常规的旧HTML页面,但它会触发他们服务器上的一些东西,使会话保持活动状态。

这似乎有效:

$('#myelement').on('click',function() {
    $('<iframe>', {src:'http://otherdomain.com/page'}).hide().load(function() {
        $(this).remove(); //clean up the DOM
        // do stuff
    }).appendTo('body');
});
$('myelement')。在('click',function()上{
$('',{src:'http://otherdomain.com/page'}).hide().load(函数(){
$(this.remove();//清理DOM
//做事
}).附于(“主体”);
});

您可以使用图像“类”发送请求:

但是,除非响应不是一幅图片,否则您将无法获得有关资源可用性的任何信息

另外,我不确定这个解决方案是否是跨浏览器的。它似乎在最近的Opera和Chrome中都能工作,但我还没有在其他浏览器中测试过它


顺便说一句,这种图像方法似乎是唯一安全的方法。如果您包含脚本或加载iFrame,它们可能会对您的页面造成不良影响,而简单图像则不会造成任何伤害。

提示:如果您从该域加载发出该请求的脚本,则不会受到同源策略的影响。@MarcellFülöp:Huh?我不知道你想说什么。什么剧本?我不知道你想做什么。。但据我所知,你有两个域名,a.com和b.com。在a.com上,您希望向b.com发出请求。因此,当您加载a.com下的页面时,有一个标记,其src指向b.com并从那里加载一个JS文件。然后,从该JS文件中,您可以自由地向b.com发出请求,但您在a.com上(因为脚本是从b.com加载的)。当然,这只有在你控制两个域名的情况下才有效。
b.com
不在我的控制之下,而且
b.com
上没有我感兴趣的JS文件。我的意思是你在那里放了一个文件,但是如果你不控制第二个域名(b.com),这是毫无疑问的。我认为同源策略也可以保护我免受他们在iframe中操纵/访问我的DOM?当然!但许多网站不喜欢被囚禁在框架内(因为所谓的“点击劫持”;试试google.com,比如exmaple):-)据我所知,仍然可以进行一些限制性操作,比如更改页面位置。还有一个故事:一个著名的俄罗斯社交网络决定惩罚某个网站(解密),并在所有页面上嵌入隐藏的1px iframe。它对该站点造成ddos攻击。但这些家伙足够聪明:他们设置脚本,将家长的位置(代码可以在这里找到:)更改为一些色情网站。有些用户被重定向到该页面,有些则没有。
var img = new Image();
img.onerror = img.onload = function() { console.log('Sended') }
img.src = "http://google.com?hey=google&rnd=" + Math.random() // random is used to prevent caching