IE内核发送ajax请求时不会将url中的参数编码

有一次用户遇到创建文件,名称为中文时乱码的问题。

经调查,发现用户使用的是国产浏览器ie模式

抓取请求发现

IE:

键 值
请求 POST /Handlers/CreateTxtFile.ashx?filename=阿斯达是.txt HTTP/1.1
Accept */*
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://mt.sogou.com/MobileCloud/Pages/IDE/pages/ide.html
...

chrome:

Remote Address:

220.181.124.6:80

Request URL:

http://mt.sogou.com/Handlers/CreateTxtFile.ashx?filename=%E6%B5%8B%E8%AF%95%E6%B5%8B%E8%AF%95%E6%B5%8B%E8%AF%95-%E6%89%8B%E6%9C%BA.txt

Request Method:

POST

....

可以发现ie浏览器是没有对url中的中文自动编码的。

所以我们在页面中发送请求时一定要注意对参数进行 encodeURIComponent

时间: 2024-11-15 18:45:06

IE内核发送ajax请求时不会将url中的参数编码的相关文章

JQuery发送ajax请求时中文乱码

先排除项目故障: 1.web.xml中是否配置了字符拦截器 <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name

从上一个页面跳入新页面时,如何拿URL中的参数

var url = document.URL; //获取当前页面的url var urlA = url.split('?');//以url中的问号进行分割; var goodscode = urlA[1]; //这个word就能得到“中国”这个文字

Ajax请求在IE和Google Chrome中可以响应,在Firefox中无法响应

在工作中碰到这么一个问题,发送ajax请求,在IE和chrome中可以正常的响应,但是在Firefox中无法响应,代码如下: JS代码: 1 function Sure(obj) { 2 var statu = confirm("是否确认删除?"); 3 if (!statu) { 4 return false; 5 } 6 var objOrderID = obj.id; 7 $.ajax( 8 { 9 type: "Post", 10 url: "/A

原生js和jquery发送ajax请求及封装

原生js                                   // ajax get 五部曲function ajax_get(url,data){ // 异步对象 var ajax=new XMLHttpRequest(); // 设置url和请求方式 // url方法 如果有数据要把数据拼接到url中?name=jack&age=20 if(data){ url+=?; url+=data; }else{}; ajax.open('get',url); // 发送请求 aja

防止重复发送Ajax请求的解决方案

防止重复发送Ajax请求的解决方案 这篇文章主要介绍了防止重复发送Ajax请求的解决方案,感兴趣的小伙伴们可以参考一下 在页面中有多个按钮,点击该按钮可以异步的去服务端读取数据,然后在前端将数据展示出来. 每个按钮点击请求的页面都是同一个,但是请求的参数不同,所以返回的内容就不同. 在连续点击多个按钮的时候就会发出多个异步请求.那么根据请求返回的快慢(因为不同按钮参数不同,返回内容不同,所以会有快慢之分),数据会依次的展示出来,那么就会出现一个先点击的按钮,由于他请求的数据量比较大,导致数据被后

好友列表右键菜单进行Ajax请求时直接跳转至登陆页面

今天在做右键菜单,当点击重命名进行Ajax请求时,并没有向后台发送数据而是直接跳转到了首页.朕百思不得其解,后来在前台页面发现一个问题: <li><a href='#' onclick="renameContactsFunction()">重命名</a></li> 原来就是这个herf='#'惹的祸.当我点击时候,页面会跳转到'#'这个路径而不是进行Ajax请求.将上面那段代码变成 <li><a onclick=&quo

AJAX请求时status返回状态明细表

AJAX请求时status返回状态明细表 readyState的五种状态2010-03-04 18:24对于readyState的五种状态的描述或者说定义,很多Ajax书(英文原版)中大都语焉不详 在<Pragmatic Ajax A Web 2.0 Primer >中偶然看到对readyStae状态的介绍,感觉这个介绍很实在-- 比较理想的解释方法应该以"状态:任务(目标)+过程+表现(或特征)"的表达模式来对这几个状态进行定义 在<Pragmatic Ajax A

Nodejs发送Post请求时出现socket hang up错误的解决办法

参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能.实际使用时报socket hang up错误. 后来发现是请求头设置的问题,发送选项中需要加上headers字段信息(这个估计也和对方的服务器有关,对于不完成的post请求头,可能被丢弃了). 完整的代码如下(遇到类型问题的同学可以做个参考): var querystring = require('querystring') , http = require('http'); var data = query

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面

通过在jquery中添加函数发送ajax请求来加载数据库数据,以json的格式发送到页面 从数据库中查询仓库信息,显示在下拉菜单中: 首先,引入js插件,这里使用jquery-1.8.3.js <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script> 当页面加载完成后,就应该发送ajax请求到数据库,