锁定老帖子 主题:prototype 发送XML数据的问题。
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-12
var tt = '<root><name>student</name><age>12</age></root>' var myAjax = new Ajax.Request( 'http://localhost:8080/server/QueryData', {method: 'post', parameters: tt, onComplete: showResponse} ); 服务器上为什么接收的不是tt那样的数据,而是“%3Croot%3E%3Cname%3Estudent%3C%2Fname%3E%3Cage%3E12%3C%2Fage%3E%3C%2Froot%3E”? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-11-12
因为客户端 encodeURIComponent 了
你在服务端再 decode一下就好了 |
|
返回顶楼 | |
发表时间:2007-11-12
谢谢fins,有没有办法不用服务器decode?我好像看到微软件的altas好像就不用,直接发过去就行了。
|
|
返回顶楼 | |
发表时间:2007-11-12
传utf8的xml
|
|
返回顶楼 | |
发表时间:2007-11-13
谢谢fins,我把代码改成了
var tt = '<root><name>student</name><age>12</age></root>' var myAjax = new Ajax.Request( 'http://localhost:8080/server/QueryData', {method: 'post', parameters: tt, onComplete: showResponse,encoding: 'UTF-8'} ); 但是传到服务器上的还是和以前的一样的,不知道是什么原因。 |
|
返回顶楼 | |
发表时间:2007-11-13
你这么做依然是把"<root><name>student</name><age>12</age></root>"当作字符串来传递的啊.
你用的prototype啥版本?? 我好久没用过prototype了 有点忘了 |
|
返回顶楼 | |
发表时间:2007-11-13
最新版本,1.6.0,我参考了别人的软件,也是这样写的啊,不过我用的是prototype。
|
|
返回顶楼 | |
发表时间:2007-11-13
这个不是encoding的问题,post get提交不管是'application/x-www-form-urlencoded'还是text/xml都会urlencode的,这个解码只能在服务器端做,比如php的$_POST默认是做了urldecode动作的,而$HTTP_RAW_POST_DATA就是原始数据,这个和Prototype没什么关系,主要看服务器端接受有没有什么默认解码一系列的
|
|
返回顶楼 | |
发表时间:2007-11-13
谢谢afcn0 ,怎么样才能在服务器上设置urldecode呢?为什么我看到的代码里,和我的环境一样,也没有去设置urldecode?
|
|
返回顶楼 | |
发表时间:2007-11-13
那就各不相同了,java php ruby .net都有不同的方法吧
|
|
返回顶楼 | |