精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-30
众所周知XMLHttpRequest的open()方法里的第一个参数是用来设置向服务器提交的方式,这是绝对的吗?不一定哦,看看下面的代码。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-07-30
holdbelief 写道
众所周知XMLHttpRequest的open()方法里的第一个参数是用来设置向服务器提交的方式,这是绝对的吗?不一定哦,看看下面的代码。
1、如果用GET,是没有报文体的,只有头部,数据应该在GET url?xxxxxxx 报头的末尾是两个CRLF,即GET的情况下,出来url本身是不能直接send数据的。 ("url?参数"的大小限制是2048B),即GET的使用范围是小数据量的文本数据。
2、如果是POST,则可以把要POST的数据加到两个CRLF后。 此时常见有两种格式: (1)、application/x-www-form-urlencoded 这个是把数据的name和value按照a=1&b=2的格式拼接成一个串,然后放在报文体中的。一般只能传递字符型数据。 (2)、multipart/form-data 使用一个特殊的【42位(我忘了,大概是)长的以10几个-开头和一组随机16进制数字+表示浏览器相关的数字表示】的分隔符,来分割报文体中的各个数据段,一般是name,然后两个CRLF,接着是二进制数据。服务器端上传组件就是直接按照这种方式来分割出数据和文件的。 考虑到这些情况就可以方便的模拟表单了。
(个人看法)综上,只有是POST方法时,才能传递URL+参数外的数据,XHR明显是考虑到了这一点。当send的数据存在时,自动使用POST。 |
|
返回顶楼 | |
发表时间:2008-07-31
看到了kimmking的回帖,太感谢了。
因为我是初学,只会用穷举法列出所有的可能性 ,然后强记所有情况的结果 而你给我详细讲解了发生美中结果的原理,真是太感谢了,以后还要向你学习啊! |
|
返回顶楼 | |
发表时间:2009-02-09
那使用A标签传递参数(使用?,Get方式)和Form的Get方式有什么区别么?
|
|
返回顶楼 | |
浏览 17808 次