我通过jquery的ajax请求发送一些测试。 本文包含一些特殊字符,如“& lt”,“& gt”,“& amp”,代表<,>和&。
$.ajax({
type: "POST",
url: "page.php",
data: "content="+txt });
不幸的是,字符串传输不好。只传输开头,并在第一个特殊字符处剪切。
例如,如果我发送“blablabla& ltgrogrogro”,服务器只会收到“blablabla”
我该如何解决?
PS:特殊字符实际上以“;”结尾,我没说,因为否则它们没有很好地显示。
答案 0 :(得分:2)
这是设计使然:如果您将字符串传递给data
,它将被视为表单URLencoded数据(如查询字符串)。在该格式中,&
表示新参数的开始。数据中的&符号需要进行URL编码。
您需要在传输之前对数据进行URLencode编码 - 在PHP中,正确的函数将是urlencode()
- 或者传递jQuery将自动编码的数组:
data: {"content": txt }
答案 1 :(得分:2)
&安培;表示数据查询字符串中的另一个变量。所以,你应该使用像这样的JavaScript对象发送它:
$.ajax({
type: "POST",
url: "page.php",
data: {
"content": txt
}
});