javascript - 转义通过 POST 发送的 jQuery 数据

标签 javascript jquery escaping

我正在使用 jQuery.ajax 从页面中提取表单数据,并将其发送到我的数据库(通过另一个 PHP 页面)。

表单信息的收集方式为:

var X=$('#div1').val();
var Y=$('#div2').val();

这用于构建 POST 字符串,即

var data='varx='+X+'&vary='+Y;

显然,如果使用&符号,这是有问题的。转义变量的最佳方法是什么,特别是为了让用户可以安全地使用与号 (&)?

谢谢!

最佳答案

最好的方法是使用数据对象。

jQuery.post("yourScript.php", {
   varx: X,
   vary: Y
});

jQuery.ajax({
      url: "yourScript.php",         
      type: "POST",
      data: ({varx: X, vary: Y}),
      dataType: "text",
      success: function(msg){
         alert(msg);
      }
   }
);

您还可以使用 jQuery 的 serialize() 将表单数据作为序列化查询字符串获取:

var data = jQuery(formSelector).serialize();

The .serialize() method creates a text string in standard URL-encoded notation. It operates on a jQuery object representing a set of form elements. The form elements can be of several types.

我认为更漂亮:-)

关于javascript - 转义通过 POST 发送的 jQuery 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2231810/

相关文章:

javascript - Nativescript - 应用程序关闭时运行代码

javascript 注释和文档

javascript - 每 1 分钟显示和隐藏 div

javascript - jQuery Mobile 1.4 的页脚按钮

在 TeX 方程中转义一个字符?

javascript - MongoDb 从字符串运行命令

javascript - 单击更改 CSS 属性

jquery - 为什么我的 jQuery AJAX 在任何按钮上触发而不仅仅是提交?

groovy - 逃脱常规

php - 正则表达式 - 负前瞻性转义