jQuery AJAX URL&符号(&)格式化

时间:2014-01-15 22:22:21

标签: jquery ajax

使用以下脚本我从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&amp;year=2014&amp;month=01&amp;date=23

请注意所有'&amp;'字符在URL中转换。为了使查询正常工作,我需要格式为:

http://www.example.com?view=week&year=2014&month=01&date=23

如何防止格式在AJAX请求中更改?

提前致谢!

3 个答案:

答案 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}

它开始工作了。