jQuery .load请求不需要的图像

时间:2015-05-26 12:16:52

标签: javascript jquery http-status-code-404

我有2个网站。站点A的主页包含一个新闻部分,我使用jQuery的.load函数将此内容加载到站点B中页面的div中,使用以下代码:

$('.siteBnews').load('http://www.sitea.co.uk .news');

一切正常。问题是,在内容被拉入后,请求源页面上的每个图像,其中没有一个在.news部分。浏览器控制台上有404个错误,因为请求的URL格式为http://siteb.sitea.co.uk/image.jpg

我看不出它为什么试图抓住所有这些图片的原因,虽然这并没有影响到这样的页面,但我不会发生404错误的加载。有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

我认为用.load无法做到这一点,因为在成功回调中它将responseText添加到节点:

self.html( selector ?

    // If a selector was specified, locate the right elements in a dummy div
    // Exclude scripts to avoid IE 'Permission Denied' errors
    jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :

    // Otherwise use the full result
    responseText );

在内存中创建DOM元素。例如,如果您清除网络选项卡并在控制台中执行此操作:

$('<img src="https://www.google.co.uk/images/srpr/logo11w.png"/>')

您将在网络选项卡中看到正在加载的图像,因为即使将图像插入DOM,浏览器也会加载图像(这就是图像预加载器的工作原理)。您可能必须使用$.ajax$.get(这是负载正在使用的负载)并手动解析返回的HTML字符串,并且只将您想要的元素包装到jQuery对象中。解析html可能很痛苦,这就是为什么jQuery通过DOM元素来实现这一点。

例如$.get({ url: 'http://www.sitea.co.uk', dataType: 'html'}).done(..parse data string..)