GET请求之间的区别?

时间:2011-07-29 13:52:38

标签: ajax http get

有两个GET请求:

1)“通常”GET(涉及重新加载页面)。

2)ajax GET(同步,异步)后台请求。

他们之间有什么区别? HTTP标准是否区分它们?

2 个答案:

答案 0 :(得分:2)

没有。没有区别。虽然有些浏览器和一些像jQuery这样的框架会发送额外的标题,但如果你愿意,你可以做出区分。否则他们的处理方式相同。

答案 1 :(得分:1)

不,HTTP标准不区分它们。这种区别适用于浏览器级别。

从根本上说,最大的区别是通过XMLHttpRequest(“ajax”请求)的请求受Same Origin Policy的约束。正常GET不是。这意味着在正常情况下,您不能使用真正的“ajax”请求从与运行脚本的页面不同的“origin”检索资源。 (请注意,它是运行脚本的页面的原点,不是脚本文件的来源,可以来自任何地方。)

有些方法可以使用“ajax”甚至是交叉来源:

  • Cross Origin Resource Sharing(CORS)是由W3C定义并由某些浏览器实现的新(ish)技术。它允许被请求的资源决定是否允许请求文档使用自己。在所有主流浏览器的最新版本的支持下,虽然IE的支持已被破坏要求您使用其专有的XDomainRequest对象而不是XMLHttpRequest
  • JSON-P完全不是“ajax”请求,可以解决限制问题;相反,它是客户端和服务器观察的约定,允许客户端通过script元素从服务器包含脚本。 (有问题的脚本通常是动态生成的,其唯一的工作是通过调用函数将JavaScript对象作为有效负载传递。)