作者hellolucky (做自己 好自在)
看板Ajax
标题[ajax] 可以使用GET无法使用POST
时间Sun Sep 13 02:41:30 2009
我的功能主要是想利用ajax丢一个网址给php处理
现在面临一个两难
--------------------------------------------------------------
使用GET:(嫌太多可以直接看POST部分 这个不是大问题)
假设url="
http://aaa.aaa.aaa/aaa.php?a=123&b=123&c=123"
我把这个url丢给handle.php去处理
handle.php收到的值变成
url=
http://aaa.aaa.aaa/aaa.php?a=123
a=123 b=123 c=123
我知道这个可以用escape(url)去解决
但我利用网路上php的unescape function去解读会变成
url="
http://aaa.aaa.aaa/aaa.php?a=123b=123c=123"
莫名奇妙少了&
附一下function (不过我想重点不是这段 下半段问题比较大)
function unescape($str) {
preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/", $str,
$matches);
$ar = &$matches[0];
$c = "";
foreach($ar as $val){
if (substr($val,0,1)!="%") { //如果是字母数字+-_.的ascii码
$c .=$val;
} elseif (substr($val,1,1)!="u") { //如果是非字母数字+-_.的ascii码
$x = hexdec(substr($val,1,2));
$c .=chr($x);
} else { //如果是大於0xFF的码
$val = intval(substr($val,2),16);
if($val < 0x7F){ // 0000-007F
$c .= chr($val);
} elseif($val < 0x800) { // 0080-0800
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
} else { // 0800-FFFF
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}
}
return $c;
}
------------------------------------------------------------
使用POST:
接下来我想说使用POST去处理看看
但怎麽丢都都不过去
很简单的一个小东西用了五六个小时 有点头大
ajax:
createXMLHttpRequest();
var url="handle.php?timeStamp=" + new Date().getTime();
var queryString="123312312"; //直接丢字串也不行
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttp.send(queryString);
php:
if(!isSet($_POST['queryString']))
echo "error";
else
echo $_POST['queryString'];
已经把可能出错的东西丢挑掉了
测试结果应该是post丢不过去
可以请问一下我哪个部份有问题吗
感谢......@________@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.73.55.165