0

我正在使用 JQuery.post() 将一些数据发布到服务器,如下所示。当我在服务器端收到 post 数据时,我惊讶地发现 post 变量已经将单个撇号转换为 html 数字(即 ' 替换为')。这是怎么回事?转换是否发生在 Jquery.post() 中?我找不到任何关于此的文档。

$("#save").click(function(event) {
    event.preventDefault();

    var postdata = "id="+id+"&note="+$("#note").val();

    $.post("save_note.php", postdata, function(data){
    $('#save_status').text(data);
    });
});
4

3 回答 3

0

这根本不会发生。

可能的原因是,在您读取该值并将其放入 postdata 字符串之前,该值已经进行了 HTML 编码。

于 2012-04-16T14:58:17.107 回答
0

你要么:

  • 编码URI组件
  • jquery 在表单上的方式(至少一种)serialize()方法,如下所示:

    $("#save").click(function(event) {
      event.preventDefault();
    
      var $form = $(event.target).closest('form');
      //var postdata = "id="+id+"&note="+$("#note").val();
    
      $.post($form.attr('method'), $form.serialize(), function(data){
      $('#save_status').text(data);
      });
    });
    

我希望这有帮助。

于 2012-04-16T14:58:43.477 回答
0

它发生在网络浏览器中。

检查值$("#note").val()- 记住当您在表单字段中键入内容时,它被插入到 HTML DOM 中。

于 2012-04-16T15:01:46.157 回答