今天调试个网页遇到很棘手的问题:用XMLHttpRequest POST一个特定的字符串居然501了!
详情:
var xmlHttpReq;//创建好的XMLHttpRequest对象
var phpfile=;//目标接收post的php文件uri
var content=encodeURIComponent(';中文字符串cc另一个中文字符串ls');//古怪的地方,就是这个字符串!!
var param="content="+content;
xmlHttpReq.open("POST",phpfile,false);
xmlHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttpReq.onreadystatechange=function(){if(xmlHttpReq.readyState==4){alert(xmlHttpReq.responseText);}};
xmlHttpReq.send(param);
上述代码执行后直接501,中文字符串指不含英文26个大小写字母的字符串1) '古怪字符串'中的 `中文字符串`删除掉(即变成`;cc.ls`)也一样error.
2) 将`中文字符串`或`另一个中文字符串`变成含>=1个英文字母,501错误消失.
3) `cc.ls`无大小写区别,即改下其中几个字符的大小写一样501.
4) `cc.ls`改成其他的字符串(例如`ccls`或`cw.ls`或`dd.ls`等等),错误消失!
5) 另一个很古怪关键的地方是这个分好(`;`),没有这个`;`,错误也消失了!好郁闷...
大家瞧瞧试试,知道内幕的达人帮解惑...
详情:
var xmlHttpReq;//创建好的XMLHttpRequest对象
var phpfile=;//目标接收post的php文件uri
var content=encodeURIComponent(';中文字符串cc另一个中文字符串ls');//古怪的地方,就是这个字符串!!
var param="content="+content;
xmlHttpReq.open("POST",phpfile,false);
xmlHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttpReq.onreadystatechange=function(){if(xmlHttpReq.readyState==4){alert(xmlHttpReq.responseText);}};
xmlHttpReq.send(param);
上述代码执行后直接501,中文字符串指不含英文26个大小写字母的字符串1) '古怪字符串'中的 `中文字符串`删除掉(即变成`;cc.ls`)也一样error.
2) 将`中文字符串`或`另一个中文字符串`变成含>=1个英文字母,501错误消失.
3) `cc.ls`无大小写区别,即改下其中几个字符的大小写一样501.
4) `cc.ls`改成其他的字符串(例如`ccls`或`cw.ls`或`dd.ls`等等),错误消失!
5) 另一个很古怪关键的地方是这个分好(`;`),没有这个`;`,错误也消失了!好郁闷...
大家瞧瞧试试,知道内幕的达人帮解惑...
解决方案 »
- 关于form表单action后取值问题
- 请问有没有PHP开源的广告系统 我是新手,不知道怎么给分,不过知道的还是帮忙解答一下吧,万分感激!
- 请教php的@mail( )发邮件的发邮件问题
- php+ajax 出现乱码
- win2003的apache下php出现该页无法显示
- $ip=$REMOTE_ADDR;的用法,还要做什么处理吗?为什么没有结果显示呀!!!!
- 关于对象引用变量的问题
- 讨论:关于PHP实现多服务器WEB同步问题?
- 一个经常碰到的问题?不刷新页面根据下拉菜单选择的内容在下方显示对应的字段输入框?分不够再加,在线等。。。。
- .htaccess泛解析求助
- PHP显示数据库内容问题
- 用PHP实现照片在线合成的问题?
`另一个中文字符串`这个地方改为含英文26个字符也一样错误.
合并cc与ls才错误消失.
防止服务器解析成原字符串,这样便安全了.
我写了个将javascript的unicode字符串encode成带utf8编码的自定义编码协议的
函数,这样服务器的.php只要hexdec简单转换下既得utf8格式的字符串,
多了一点encode来decode去的代码,哎,,,,
有没有方法既设置某个表单域的name属性,
又不让表单提交这个域 ?不如说在<form>中: <input name='demoname' type='text' ... />如何屏蔽这个域?