Jquery Ajax的url传递时间含空格不能提交解决方案

[color=brown]问题描述:在JS代码中访问地址,浏览器控制台报错。[/color]
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'

你可能感兴趣的:(Java-Web)