php+ajax+javascript:encodeURIComponent 在发送到服务器时剪切我的文本
这是我的第一个问题...我希望我的问题看起来不愚蠢...
html(允许任何符号)---> JavaScript 事件 ---> javascript 函数使用 ajax 方法将文本发送到 .php 文件。 这是一个问题:
当我使用 xmlhttp.open("GET","proceed.php?q="+encodeURIComponent(str),false); 它非常适合小文本(少于 1500 个符号)......
如果我使用 xmlhttp.open("GET","proceed.php?q="+str,false); 那么它适用于任何长度,但我必须小心特殊字符。
为什么encodeURIComponent 不能处理更多的文本(超过 1500 个,甚至只是简单的字母数字符号)? 有什么想法吗?
所以,问题出在这个字符串中(我已经测试了其余的所有字符串)。
顺便说一句,它是在保加利亚西里尔字母上进行测试的......
对于超过 1500 个符号的文本,根本没有任何动作(没有可见的错误,没有任何事情,只是什么也没有发生)。
谢谢。
This is my first question... I hope my problem doesn't look stupid...
html (any symbols are allowed) ---> javascript event ---> javascript function sends text to .php file using ajax method.
Here is a problem:
when I use
xmlhttp.open("GET","proceed.php?q="+encodeURIComponent(str),false);
it works great for small texts (less than 1500 symbols)....
If I use
xmlhttp.open("GET","proceed.php?q="+str,false);
then it works for any length, but I have to be careful with special characters.
Why doesn't encodeURIComponent work for a bigger amount of text (over ~1500 even just simple alphanumeric symbols)?
Any ideas?
So, the problem is in this string (I've tested all the rest).
BTW, it was tested on bulgarian cyrillic letters...
With a text over 1500 symbols there is no action at all (no viewable mistake, no nothing, just nothing happens).
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
URL 的长度可以达到许多限制。在 IE 中,URL 的总长度(包括 GET 查询字符串)不得超过 2,083 个字符 。服务器也可能施加限制。
所以显然不是encodeURIComponent本身有长字符串的问题。相反,编码的结果比未编码的字符串长,这似乎足以让您达到我上面提到的限制之一。
There are a number of limits which you can hit with the length of a URL. In IE, the total length of the URL, including a GET query string, must not exceed 2,083 characters. The server might impose a limit, too.
So apparently it's not encodeURIComponent itself which has a problem with long strings. Rather, the encoded result is longer than the unencoded string, and that seems to be enough to make you hit one of the limits I mentioned above.