1

我通过 jquery 的 ajax 请求发送了一些测试。此文本包含一些特殊字符,例如“<”、“>”、“&”,它们代表 <、> 和 &。

$.ajax({
 type: "POST",
 url: "page.php",
 data: "content="+txt });

不幸的是,字符串没有很好地传输。只传输开头,并在第一个特殊字符处被剪切。

例如,如果我发送“blablabla<grogrogro”,服务器只会收到“blablabla”

我该如何解决?

PS:特殊字符其实是以“;”结尾的,我没有放,否则显示不好。

4

2 回答 2

2

这是设计使然:如果您将字符串传递给data,它将被视为表单 URL 编码数据(如查询字符串)。在该格式中, &表示新参数的开始。数据中的 & 符号需要进行 URL 编码。

您需要在传输之前对您的数据进行 URLencode - 在 PHP 中,正确的函数是urlencode()- 或者传递一个 jQuery 将自动编码的数组:

data: {"content": txt }
于 2011-11-30T22:08:43.140 回答
2

& 表示数据查询字符串中的另一个变量。因此,您应该使用 JavaScript 对象发送它,如下所示:

$.ajax({
    type: "POST",
    url: "page.php",
    data: {
        "content": txt
    }
});
于 2011-11-30T22:09:45.783 回答