AJAX 请求和普通浏览器请求的区别

2022-01-15 00:00:00 xmlhttprequest javascript ajax

AJAX 请求和直接浏览器请求之间有区别吗(就网页的调用和加载方式而言)?

Is there a difference between an AJAX request and a direct browser request (in terms of how a web page is called and loaded)?

换句话说,我的意思是:直接服务器端请求的处理方式是否不同于客户端请求(由浏览器发起)?

In other words, I mean: is a direct server-side request handled in any way differently than a client-side request (initiated by the browser)?

推荐答案

就服务器而言,AJAX 请求与正常"浏览器请求相同,除了可能略有不同的 HTTP 标头.例如chrome 发送:

An AJAX request is identical to a "normal" browser request as far as the server is concerned other than potentially slightly different HTTP headers. e.g. chrome sends:

X-Requested-With:XMLHttpRequest

我不确定该标头是否标准化,或者它是否在每个浏览器中都不同,甚至是否在每个浏览器中都包含 .

I'm not sure if that header is standardized or not, or if it's different in every browser or even included at all in every browser.

我收回这一点,该标头是由 jQuery(可能还有其他 JS 库)发送的,而不是由浏览器发送的,如下所示:

edit: I take that back, that header is sent by jQuery (and likely other JS libraries), not the browser as is evidenced by:

var xhr = new XMLHttpRequest();
xhr.open('GET', '/');
xhr.send();

发送:

Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie: ....
Host:stackoverflow.com
If-Modified-Since:Sat, 31 Dec 2011 01:57:24 GMT
Referer:http://stackoverflow.com/questions/8685750/how-does-an-ajax-request-differ-from-a-normal-browser-request/8685758
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11

这使我得出结论,默认情况下绝对没有区别.

which leads me to the conclusion that by default there is absolutely no difference.

相关文章