论坛首页 Web前端技术论坛

prototype 发送XML数据的问题。

浏览 14401 次
精华帖 (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”?
   发表时间:2007-11-12  
因为客户端 encodeURIComponent  了

你在服务端再 decode一下就好了
0 请登录后投票
   发表时间:2007-11-12  
谢谢fins,有没有办法不用服务器decode?我好像看到微软件的altas好像就不用,直接发过去就行了。
0 请登录后投票
   发表时间:2007-11-12  
传utf8的xml
0 请登录后投票
   发表时间: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'}  
                );
但是传到服务器上的还是和以前的一样的,不知道是什么原因。  
0 请登录后投票
   发表时间:2007-11-13  
你这么做依然是把"<root><name>student</name><age>12</age></root>"当作字符串来传递的啊.
你用的prototype啥版本?? 我好久没用过prototype了 有点忘了
0 请登录后投票
   发表时间:2007-11-13  
最新版本,1.6.0,我参考了别人的软件,也是这样写的啊,不过我用的是prototype。
0 请登录后投票
   发表时间:2007-11-13  
这个不是encoding的问题,post get提交不管是'application/x-www-form-urlencoded'还是text/xml都会urlencode的,这个解码只能在服务器端做,比如php的$_POST默认是做了urldecode动作的,而$HTTP_RAW_POST_DATA就是原始数据,这个和Prototype没什么关系,主要看服务器端接受有没有什么默认解码一系列的
0 请登录后投票
   发表时间:2007-11-13  
谢谢afcn0 ,怎么样才能在服务器上设置urldecode呢?为什么我看到的代码里,和我的环境一样,也没有去设置urldecode?
0 请登录后投票
   发表时间:2007-11-13  
那就各不相同了,java php ruby .net都有不同的方法吧
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics