Javascript生成json之后提交表单向其他web项目出现问题,传参乱码。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript生成json之后提交表单向其他web项目出现问题,传参乱码。相关的知识,希望对你有一定的参考价值。
生成参数明明是:"userLoginName":"sss",可是到了web动态项目那边参数就变成了:%7B%22userLoginName%22%3A%22sss%22%7D,求知情同事解决,小弟在此拜谢!
参考技术A 特殊符号是不能直接用 get 提交方式传递的,要先用 encodeURI 转一下%7B%22userLoginName%22%3A%22sss%22%7D
这个大概就是转过之后的结果。javascript 的话使用 decodeURI 转回来,服务器语言也有对应的方法。 参考技术B
你是直接添加在url后面的参数字符串?
1 如果可以,建议换成表单参数。
如:
// 你的json数据放在json这里$.ajax(url, json, callback);
2 非要在url后面添加,建议使用base64转码后再传递。
'xx?wd=' + JSON.stringify(data)
你好,你说的第一种方法是JSONP的方法么,因为是不同项目,所以用ajax有同源策略不能用,网上说JSONP可以不受同源策略的限制,如果是,还请明示啊:)
追答你可以找一下跨域的解决方法的。
我自己的话,一般使用服务器代理的方式来处理跨域。
可以参考一下 http://www.hyjiacan.com/thread-40-1-1.html
嗯,看了看,意思是使用ajax代理来代理访问要访问的跨域项目,之后再回调回来么?
追答就是使用你自己的服务器去访问要跨域的资源,从而避免浏览器的同源策略。我个人觉得这种方式比较简单。
jquery提供的jsonp也不错啊,, 你可以试试
谢谢,虽然试了没成功,不过谢谢耐心回答,还是给你啦~~
本回答被提问者采纳以上是关于Javascript生成json之后提交表单向其他web项目出现问题,传参乱码。的主要内容,如果未能解决你的问题,请参考以下文章