$ .get(url)与向DOM附加图像相同吗?

时间:2011-11-22 09:22:43

标签: jquery get

更新:让我指出一些事情。此GET请求(对于另一个域)应在通过AJAX成功提交的表单(它计算来自特定引荐来源的转化次数)之后发生。因此,响应确实无关紧要,最重要的是GET请求是成功的,当然我将代码保持在最低限度。

快速提问,这两行几乎是一回事吗? (我需要的是对url的获取请求):

$('body').append('<img height="1" width="1" style="border-style:none;" alt="" src="url"/>');

并且

$.get(url);

如果这听起来很愚蠢,我很抱歉,但我需要确定。

谢谢。

2 个答案:

答案 0 :(得分:6)

  

这两行几乎是一样的

在向URL发出GET请求方面 - 是的。但在使用数据方面 - 没有。

创建一个图像元素,url作为图像源。如果响应不是有效的图像数据,则呈现它将失败。但是,GET请求将永远存在。

另一个向url发出Ajax请求。如果它是图像资源,则响应将包含图像数据 - 但您将很难显示它(您必须首先对其进行base64编码并显示为data: URL,或将其插入到一个canvas元素,这两种方法都没有100%的浏览器支持。)另外,对远程URL的请求将不起作用。

答案 1 :(得分:0)

正如您可能已经意识到的那样,第一个代码片段将图像插入到文档正文中,而第二个代码片段则提交了一个AJAX请求。

您已表明您只对发送请求感兴趣,并且对响应没有兴趣。因此,Dogbert在他的(尽管已删除)答案中指出了主要的关键方面:

  • 只有当请求仅限于同一个域和端口
  • 时,AJAX解决方案才有效
  • 图片解决方案只能提交GET请求

最重要的是,我想指出一些事情:

  • 图像解决方案正在使用img标记用于其他目的之外的其他内容。这可能是一个小问题,但是当它是一个选项时,它仍然让我选择AJAX。
  • 发送$.ajax请求,您可以选择指定dataType: 'jsonp',这将解决相同的域先决条件。
  • 使用AJAX,您可以更好地控制您的请求,例如指定POST的能力,或者在请求失败时收到通知。