【问题标题】:handling ampersand (&) in input using js [duplicate]使用js处理输入中的与号(&)[重复]
【发布时间】:2015-10-27 19:20:42
【问题描述】:

以前有人问过这个问题,但我的不一样。我不能绕着这个头。我有一个由 jquery 获取并由 ajax 保存的所见即所得表单

var content=$('.inputfield').val();

fields='front='+fcarddetails;
 $.ajax({
  method:'POST',
  url:actionpage,
  data:fields,
   beforeSend:function()
   {
 $("#processing").show();
   },

  complete:function ()
   {
  $("#processing").hide();  
   },
  success: function(feedback)
    {
    }    etc.

当 '&' 被添加到字段中时,整个输入就会混乱。 我已经处理了所有的 html 转义、过滤器和特殊字符。但是代码甚至在到达 php 操作页面之前就被破坏了。我无法将 '&' 转换为 &,因为它仍然包含 '&'。请帮忙,问题出在 js 中,而不是 php,但你可以证明我不是这样。提前致谢。

【问题讨论】:

  • URL 对其进行编码。 & 是查询字符串中用于分隔数据的键符号。
  • “以前有人问过这个问题,但我的不一样。” 几乎可以肯定不是。无论如何,请链接到您之前阅读过的问题,并说出您认为自己的问题如何与众不同。
  • &T.J.克劳德,毫无疑问是重复的。我的错,我不知道这是一个 ajax 问题,所以我搜索错误。谢谢

标签: javascript php jquery ajax


【解决方案1】:

使用encodeURIComponent对字符串进行编码。

encodeURIComponent() 方法通过将特定字符的每个实例替换为代表 UTF-8 编码的 UTF-8 编码的一个、两个、三个或四个转义序列来对统一资源标识符 (URI) 组件进行编码。字符(对于由两个“代理”字符组成的字符只有四个转义序列)。

var fcarddetails = 'Tom&Jerry';

fields = 'front=' + encodeURIComponent(fcarddetails);

document.write(fields);

【讨论】:

    猜你喜欢
    • 2014-11-27
    • 1970-01-01
    • 2012-02-25
    • 2020-04-02
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    相关资源
    最近更新 更多