使用以下脚本我从jQuery datepicker捕获日期值并将其传递给jQuery AJAX调用。一切正常,但在AJAX URL中遇到了与&符号的问题。
这是我的代码:
<script type="text/javascript">
$(document).ready(function(){
$('#datepicker').datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function (date) {
//capture date values from datepicker
var date = date;
var year = date.substr(0,4);
var month = date.substr(5,2);
var day = date.substr(8,2);
var url = "http://www.example.com?view=week" + "&year=" + year + "&month=" + month + "&date=" + day;
//ajax events load
$.ajax({url: url ,success:function(result){
$("#ajaxEvents").html(result);
}});
//close datepicker
$('#datepicker').toggle();
$(this).toggleClass('close');
return false;
}
})
});
</script>
当我使用fiddler检查AJAX请求时,您可以看到URL格式如下:
http://www.example.com?view=week&year=2014&month=01&date=23
请注意所有'&amp;'字符在URL中转换。为了使查询正常工作,我需要格式为:
http://www.example.com?view=week&year=2014&month=01&date=23
如何防止格式在AJAX请求中更改?
提前致谢!
答案 0 :(得分:1)
向jQuery ajax函数添加数据元素
data: { year: "2014", month: "Jan", date: "15" }
jquery会将它添加到您的URL中。
//ajax events load
$.ajax({url: url, data: { year: '"'+year+'"', month: '"'+month+'"', date: '"'+day+'"'} ,success:function(result){
$("#ajaxEvents").html(result);
}});
答案 1 :(得分:0)
使用ajax函数时,不应在url中手动发送信息。尝试使用它:
var url = "http://www.example.com";
var data = "view=week" + "&year=" + year + "&month=" + month + "&date=" + day;
$.ajax({
url: url ,
success: function(result){$("#ajaxEvents").html(result);},
data: data
});
我们正在做的是单独创建查询字符串并使用data属性发送到ajax函数。
答案 2 :(得分:0)
就我而言,以下内容无效:
url: 'myAnalysis.php?fName='+fNameVal+'&lName='+lNameVal
所以,我将其替换为:
url: 'myAnalysis.php', data: { fName: fNameVal, lName: lNameVal}
它开始工作了。