[color=brown]问题描述:在JS代码中访问地址,浏览器控制台报错。[/color]
1、错误访问代码如下:
注:starttime,endtime的值格式数据如:"2013-06-07 10:00:00",url上面含参数js不会对url进行编码。
空格" "被浏览器编译成了[color=red]%20[/color]代替,导致无法访问后台。
2、问题解决方案
[color=brown]替换空格,以下字符都是可行的,如"_",",""&","|","@"等字符,英文字母例外。[/color]
3、mysql数据库查询
1、错误访问代码如下:
function getTrackData(param) {
var mydata = {};
$.ajax({
url : url + "/locate/track/" + param.carnumber + "/"+ param.starttime + "/" +param.endtime,
dataType : 'json',
type : 'get',
async : true,
success : function(data) {
var item = eval(data);
if (item)
mydata = item;
}
});
return mydata;
}注:starttime,endtime的值格式数据如:"2013-06-07 10:00:00",url上面含参数js不会对url进行编码。
空格" "被浏览器编译成了[color=red]%20[/color]代替,导致无法访问后台。
2、问题解决方案
function getTrackData(param) {
var mydata = {};
var starttime=param.starttime.replace(/ /g,"_");
var endtime=param.endtime.replace(/ /g,"_");
$.ajax({
url : url + "/locate/track/" + param.carnumber + "/"+ starttime + "/" +endtime,
dataType : 'json',
type : 'get',
async : true,
success : function(data) {
var item = eval(data);
if (item)
mydata = item;
}
});
return mydata;
}[color=brown]替换空格,以下字符都是可行的,如"_",",""&","|","@"等字符,英文字母例外。[/color]
3、mysql数据库查询
SELECT * FROM device_001 WHERE SERVICETIME BETWEEN '2013-06-07@00:00:00' AND '2013-06-07@08:12:30'
本文介绍了一种在JavaScript中由于URL未正确编码导致后台访问失败的问题,并提供了解决方案。通过将URL中的空格替换为其他字符,避免了浏览器自动编码为空格符%20的问题。

1822

被折叠的 条评论
为什么被折叠?



