ajax发送请求时post和get的区别

realcbb 2008-05-21 02:02:27
1.
用servlet+jsp写了个简单的聊天室,但是jsp中ajax的部分很奇怪,XMLHR.open(A,url,true)中如果A用get只有网页加载的时候运行一次,之后并没有按照setTimeOut设定的时间来,servlet中doGet方法根本不执行;把get换成post就OK了。
请问是为什么?


2.
提交发言的表单:

<form action="chat.do" method="post">
<textarea name="txt" rows="3" cols="60"></textarea>
<input type="submit" value="Submit"/>
</form>


这段代码也是,点击提交后doPost方法也不执行,改成下面的才行:

<form action="chat.do" method="post">
<input type="text" name="txt"/>
<input type="submit" value="Submit"/>
</form>

请问是为什么?
...全文
1026 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
请叫我卷福 2009-12-29
  • 打赏
  • 举报
回复
url="operate.jsp?param="+param+"×tamp="+new Date.gettime();随机数
realcbb 2008-05-27
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wdbjsh 的回复:]
我想还是有没有贴出来的东西,我想还是有地方给form定义了东西,你再看看页面的js
[/Quote]

没有别的什么东西了,整个页面很简单,js部分就是AJAX,隔一段时候重新显示一下聊天记录。

你们有没有人测试过第二个代码,你们用的时候有问题吗?
wdbjsh 2008-05-26
  • 打赏
  • 举报
回复
我想还是有没有贴出来的东西,我想还是有地方给form定义了东西,你再看看页面的js
realcbb 2008-05-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 vivi8233 的回复:]
点击提交后doPost方法也不执行 这句话什么意思 报错了吗?
[/Quote]

点击提交后不报错,页面感觉没有反应。我在doPost方法里第一句就是打印一条语句,这一句也没有被执行。
palm_civet 2008-05-26
  • 打赏
  • 举报
回复
get浏览器有缓存,所以不会从服务器取数据库,get后面的参数加个随机数
realcbb 2008-05-23
  • 打赏
  • 举报
回复
感谢KK3K2005,经测试的确是这样。结贴时给分。

第二个问题有人能回答吗
ee4456 2008-05-23
  • 打赏
  • 举报
回复
第2个问题,没有遇到过
ee4456 2008-05-23
  • 打赏
  • 举报
回复
在URL后边加随即数字或者加个时间戳就好了(GET),这样每次请求的URL都不一样就OK了
spaceko2006 2008-05-23
  • 打赏
  • 举报
回复
post比get方式提交的数据量大。如果提交大数据量的话,最好用post。如果小数据的话选用get吧。
zidasine 2008-05-23
  • 打赏
  • 举报
回复
没看出问题
吐司vivi 2008-05-23
  • 打赏
  • 举报
回复
点击提交后doPost方法也不执行 这句话什么意思 报错了吗?
wdbjsh 2008-05-23
  • 打赏
  • 举报
回复
第二个问题还真不明白。能提供更加详细的东东么?
sportq 2008-05-22
  • 打赏
  • 举报
回复
ding
realcbb 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 burningice44 的回复:]
第二个问题回答:

<textarea name="txt" rows="3" cols="60"> </textarea>

书写错误,应该为

<input type="textarea" name="txt" rows="3" cols="60"/>
[/Quote]

<input>标签里type属性没有textarea类型。
---------------------------------------------
[Quote=引用 4 楼 java2000_net 的回复:]
ajax 默认是POST

看不懂你的问题,代码没有问题,应该可以用,至少可以提交。
[/Quote]

我问的是两个问题,感觉两个问题都跟发送方式有关。请问是怎么回事?
----------------------------------------------
[Quote=引用 9 楼 KK3K2005 的回复:]
因为
GET访问 浏览器 认为 是等幂的
就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]
所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果

POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的)

防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的]

设计WEB页面的时候 也应该遵守这个原则
[/Quote]

多谢,我等会就去试一下。
lblxiaoyu 2008-05-21
  • 打赏
  • 举报
回复
楼上正解,
楼主可以在url后面加时间,随机数。

这个可能就是ajax的一个优化处理
KK3K2005 2008-05-21
  • 打赏
  • 举报
回复
因为
GET访问 浏览器 认为 是等幂的
就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]
所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果

POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的)

防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的]

设计WEB页面的时候 也应该遵守这个原则
liucuilian 2008-05-21
  • 打赏
  • 举报
回复
其实很简单,你在servlet中doPost和doGet都执行相同的方法,那用什么也是一样的
csscis 2008-05-21
  • 打赏
  • 举报
回复
简单来说把,如果你的表单提交是post那么servlet就是调用post的方法,反之是get的方法
burningice44 2008-05-21
  • 打赏
  • 举报
回复
各位对不住
小弟犯晕啦
还请二楼三楼的兄弟赐教,他的问题怎么解决!
burningice44 2008-05-21
  • 打赏
  • 举报
回复
各位对不住
小弟犯晕啦
还请一楼二楼的兄弟赐教,他的问题怎么解决!
加载更多回复(4)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧