【问题标题】:How do I post long strings that contain special characters (like '&' specifically) via an AJAX request?如何通过 AJAX 请求发布包含特殊字符(特别是“&”)的长字符串?
【发布时间】:2010-03-22 10:36:31
【问题描述】:

我希望制作一个联系/查询表单,最终用户可以在其中向网站管理员发送电子邮件。该表单有一个“textarea”字段,它从用户那里捕获长字符串,如果我使用 AJAX 使用 GET 方法提交表单,如果它们是特殊字符,我的参数往往会中断,特别是 textarea 字符串中的“&”。 . 我卡住了,请帮忙!

【问题讨论】:

  • 这不是滥用 HTTP/Rest 使用 GET 向服务器发布数据吗?
  • 检查this SO 问题,该问题解释了如何在 javascript 中对 url 进行编码。

标签: php html ajax


【解决方案1】:

在发布请求时尝试在您的 javascript 中调用 encodeURIComponent

【讨论】:

  • 不要使用escape,它不会“正常工作”(除非您的数据碰巧落入它可以正常处理的字符子集)。使用 encodeURIComponent。
  • 酷,我正在使用你建议的那个。'escape' 省略了哪些特殊字符?
  • @, +, / ...查看此页面:the-art-of-web.com/javascript/escape 特别是第 3 节中的表格
【解决方案2】:

您可以使用 JavaScript urlencode 使字符串 URL 安全...

var textToSend = encodeURIComponent(myform.myfield.value);

这会将所有特殊字符转换为 URL 编码字符。

【讨论】:

  • 你确定 urlencode 存在于 javascript 中吗?使用 encodeURIComponent()!
  • 不要使用escape,它不会“正常工作”(除非您的数据碰巧落入它可以正常处理的字符子集)。使用 encodeURIComponent。
  • 是的,那天我做了很多 PHP - 在 JavaScript 中它被称为 encodeURIComponent!
猜你喜欢
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 2015-08-16
  • 2020-07-12
相关资源
最近更新 更多