使用& # 39;,& # 39;以ajax形式提交
Using '&' in ajax form submit
我正在使用.ajax()
提交表单。
当前脚本包含:
data: dataString,
dataString
包含:
var list = $('.listsummary').val()
listsummary
类属于用户填写的textarea
类,或者将(部分地)通过不同的脚本动态填充。
问题是用户几乎总是使用'&'符号,例如:
Potato & Patota blah blah blah
这破坏了dataString
允许发布在找到第一个'&'之前写的所有内容。
我如何才能实现var list
将被正确地发送到PHP处理程序,以便将整个textarea
内容存储到使用'&'的数据库中?
您可以使用encodeuriccomponent()对字符串进行编码
var list = $('.listsummary').val();
var urlEncoded = encodeURIComponent(list);
你有两个选择。要么将数据打包为对象:
data: { list: $('.listsummary').val() }
或者编码URI组件:
var dataString = "list=" + encodeURIComponent($('.listsummary').val());
欢迎来到注射世界。这是一个简单的问题,但是您可以采用多种方法:
-
如果你的数据是简单的非结构化文本,你应该设置contentType为text/plain或application/octet-stream:
$.ajax({ .... data: "Hello & world", contentType: "text/plain", ... });
-
如果你的数据是键值结构化的,那么你应该将你的数据编码为application/x-www-form-urlencoded。这可以在JQuery中通过向data传递一个JavaScript键值对象来实现:
$.ajax({ .... data: { text: "Hello & World", location: "Boston" }, ... });
-
如果你的数据有更复杂的结构,你应该用最合适的内容类型编码你的数据(例如JSON, XML, CSV),并设置contentType为(例如。"application/json", "application/xml", "text/csv")
$.ajax({ .... data: JSON.stringify(["Hello & world", {"Hello & World"}]), contentType: "application/json", ... });
,
在PHP端,如果您需要处理application/x-www-form-urlencoded以外的任何内容,则需要将请求体直接作为字符串读取。可以使用下面的代码:
$body = file_get_contents('php://input');
或者如果你有PECL:
$body = http_get_request_body();
如果你使用web框架,它们可能也有处理自定义内容类型的方法。检查web框架的文档。
- 我应该使用Ng提交还是点击表格
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 提交按钮,该按钮位于使用 Excel VBA 的 Javascript 中
- 使用 JavaScript 自动提交表单
- 使用jQuery检查提交时添加到句子中的单词
- 如何使用提交按钮搜索表中的记录
- 如何自动提交使用php的html页面
- Android提交使用jquery的https登录表单
- 如何防止引导模式关闭表单提交使用代码点火器
- 表单提交使用 jquery 在 rails 中没有 ajax
- 我如何张贴文本区域's内容点击提交使用jquery
- asp.net c#表单提交使用javascript
- HTML表单提交使用javascript vs提交按钮
- ajax表单提交使用什么返回类型
- 如何使用dojo提交使用spring表单标签创建的表单
- jQuery-阻止表单提交使用ajax更改页面
- 在提交使用Google脚本构建的HTML表单后,如何重定向到URL
- 如果我在当前 HTML 中提交使用 Ajax resposnse 附加的表单,则 JavaScript 验证失败
- 如何传递一个值到同一页时,一个表单提交?使用Ajax