大家好噢,大家一定很好噢!
我现在遇到一个娘他妈都晕的搞!谁来哈儿婆蜜?
1.首先求教大家一下,标准的microsoft ajax framework下的post数据的方式是怎样的呢?服务端如何获取数据呢?
1)webRequest.set_post(String.format("params1={0}&params2={1}", params1,params2));
在服务端用context.Request.Form["params1/2"]来获取。
可能出现的问题:如果params1和params2中的字符包含"&",这样通过Form取到的数量就不对,比如多了一个&就会有Form.Count==3的现象,这显然会导致后续逻辑的错误,如何避免?2)通过{"x":"y"},JSON的方式传送,OK,那在服务端要怎么取?反序列么?可是How?3)通过随意的字符串"xxx|yyy|ccc",方法同1),但在服务端用context.Request.Form.ToString().Split('|')来获取?但这样的结果也很糟糕,如果xxx变成了x|x则整个结果就会出现和1)类似的方式。相信各位达人一定都搞定过以上小问题,如果有更好的方式,请回复告知。超级感谢,五体投地!支持我的免费上香!

解决方案 »

  1.   

    json传,服务器端反序列化,或者在客户端escape
      

  2.   

    先编码 在做& 后台再解码。。只是一个想法
      

  3.   

    escape 就是标准答案。不序列化会出现你说的问题的。escape就好了。
      

  4.   

    escape将字符转换成ISO标准,encodeURI/encodeURIComponent将字符转换成UTF-8,其中有些字符不转换可以查一下资料
      

  5.   


    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");再用escape(传过去的值)