问题如下
1.通过html表单方式提交数据(可以指定get和post)和ajax方式请求的原理是一样的吗?
2.http协议里面的get 和post请求方式和ajax的get 和post是一回事吗?
这几个概念总是分不清
问题如下
1.通过html表单方式提交数据(可以指定get和post)和ajax方式请求的原理是一样的吗?
2.http协议里面的get 和post请求方式和ajax的get 和post是一回事吗?
这几个概念总是分不清
不完全一样。 一般通过Form方式提交的数据会设置特殊的Content-Type: application/x-www-form-urlencoded, 也会改变location。 而通过Ajax请求可以自定义请求体类型Content-Type, 它的请求头部会设置“Connection”为“Keep-Alive“。 目前就想到这些差别了
X-Requested-With:XMLHttpRequest
, 服务器端可以通过这个头来判断是否是ajax请求。ajax提供了一种方式,使得在js中可以触发http请求。想当初ajax技术还没有出来的时候(那个时代大概是ie4的天下),只能通过浏览器跳转来刷新当前页面的内容。自从ajax技术出现后,大家逐渐习惯用js来触发http请求,并且这种请求不用刷新页面,然后在跟js中的DOM函数结合使用,就可以实现页面的局部刷新了。
所以说可以这么总结,ajax是一系列的js api,而http协议是一种网络通信协议。调用ajax函数的时候,可以实现http通信。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
ajax 和 http 不是一個層面上的東西。
http (Hypertext Transfer Protocol) 是一種協議;
ajax (asynchronous JavaScript + XML) 是一種技術。
對於不是一個層面的東西,沒辦法簡單地說是、不是,只能說怎麼是、如何是。
ajax 當中的 get 與 html form 中的 get 等,同樣指的是用 http 中的一種特定 request method 傳輸數據。
泛泛而言,ajax get 是一個具體事物,比如某一張桌子,而 http get,是形相,是桌子的概念。
ajax get 和 html form get 的區別,就是這張桌子和那張桌子的區別,但他們都「是」桌子,「屬於」桌子,卻並不「等於」桌子。
更多 request methods 參見 http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol