ajax向后台传中文报错

有的同学正在做的需求,需要通过ajax,以httprequest querystring的方式向服务器端传递中文参数,在服务端获取参数后发现是乱码,很蛋疼呀~~
最终还是在度娘那找到答案了:
Tomcat和Weblogic下ajax或get中文乱码

此种方法保证在Tomcat和Weblogic下都不会产生乱码
1、 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
更改tomcat编码,tomcat默认为iso-8859-1
2、JSP
将参数encodeURIComponent(url)
3、action:
companyName= java.net.URLDecoder.decode(request.getParameter("companyName"),"UTF-8");
或者直接获取
companyName=request.getParameter("companyName");
这样部署到weblogic下不会乱码,也不用在filter里面去设置编码


从上面的信息得知,使用tomcat时,request.getParameter默认使用“iso-8859-1“,所以传递参数前及时使用encodeURIComponent编码后,服务端获得的参数还是乱码,
大家只需将自己tomcat服务器 server.xml文件按下面方式配置即可:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>。

同时传参前使用encodeURIComponent将中文参数使用UTF-8进行编码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示通常意味着您正在使用HTTP协议而不是HTTPS协议来访问某个资源,但您的浏览器或服务器要求使用HTTPS来保证通信的安全性。 您可以尝试以下解决方法: 1. 将您的应用程序或网站配置为使用HTTPS协议。这可以通过购买和安装SSL证书来实现,或者使用免费的证书,如Let's Encrypt。 2. 如果您只是想测试或开发,可以考虑在URL前添加https://来手动使用HTTPS协议。 3. 检查您的应用程序或网站是否正确地配置了HTTPS。您可能需要更新您的配置文件或代码以确保所有资源都使用正确的协议。 4. 检查您的服务器配置,以确保它正确地处理HTTPS请求并返回正确的证书。 5. 您也可以检查您的浏览器设置,以确保它已正确配置为使用HTTPS协议。您可能需要启用自动重定向到HTTPS选项。 希望这些解决方法可以帮助您解决问题! ### 回答2: 这个错误是因为前端向后台发送的请求使用的是不安全的HTTP协议,而后台要求请求必须使用安全的HTTPS协议。HTTP是不加密的协议,数据在输过程中容易被窃听和篡改,而HTTPS则是基于SSL/TLS协议的安全协议,能够对数据进行加密保护。 要解决这个错误,我们需要确保前端向后台发送的请求使用的是HTTPS协议。具体的解决方法有以下几个步骤: 1. 确认后台服务器已经配置了有效的SSL证书,并能够通过HTTPS协议进行访问。我们可以通过在浏览器中直接访问后台接口的HTTPS地址来验证。 2. 在前端代码中,将发送请求的URL地址的协议部分改为HTTPS。例如,如果原来的URL是"http://example.com/api",修改后的URL应该是"https://example.com/api"。 3. 如果前端使用的是Ajax请求,还需要在请求的参数中设置"xhrFields: { withCredentials: true }",以允许跨域请求携带cookie信息。同时,确保后台服务器设置了允许跨域请求的相关响应头。 通过以上步骤,我们就可以解决这个报错并确保前端与后台之间的通信使用的是安全的HTTPS协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值