[ajax] 可以使用GET無法使用POST
我的功能主要是想利用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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章