2011-11-22 37 views
1

更新:让我指定几件事情。此GET请求(至另一个域)应在通过AJAX成功提交表单(它计算来自特定引荐来源的转化次数)之后发生。所以这个回应确实是无关紧要的,最重要的是GET请求是成功的,当然我会尽量减少代码。

快速的问题,这两行几乎是相同的东西? (我需要的是一个GET请求url):

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

而且

$.get(url); 

我道歉,如果这听起来很愚蠢,但我要肯定的。

谢谢。

回答

6

是这两条线几乎同样的事情

在一个GET请求的URL而言 - 是的。但是在使用数据方面 - 不。

使用url作为图像源创建一个图像元素。如果响应不是有效的图像数据,则渲染将失败。尽管如此,GET请求总会被执行。

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

+0

鉴于图像的1x1尺寸,我不认为它会包含图像数据,而是附加图像是一种破坏,导致某些事情发生在服务器端,完全忽略响应。虽然你的回答在技术上是对这个问题的正确答案,但我认为Dogbert正在解决本应该是OP的问题的关键方面。 –

+0

我只关心向url发送获取请求,不检索任何图像数据。 – Krimo

0

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

您表示您只对发送请求感兴趣,并且对回复没有兴趣。因此,Dogbert指出了主要关键方面在他的(虽然删除)答案:

  • 当请求被局限在同一个域名和端口
  • 图像解决方案仅会的AJAX解决方案只会工作能够提交GET请求

最重要的是,我想指出的几件事情:

  • 的图像解决方案是使用这样img标签除了预期的目的以外。这可能是一个小问题,但它仍然使我选择AJAX时,这是一个选项。
  • 发送$.ajax请求,您可以选择指定dataType: 'jsonp',这将围绕相同的域先决条件工作。
  • 使用AJAX,您可以更好地控制您的请求,例如指定POST的能力,或者在请求失败时收到通知。