正在用PHP試驗一些基本的http後的東西,並遇到這個問題。php編碼後的參數值
1.PHP:
<head>
<script src="/scripts/jquery.js"></script>
</head>
<body>
<script>
function hw(){
$.ajax({
type: 'POST',
url: '/2.php',
data: 'param=a+b+c',
success: function(d){
console.log('server said ' + d);
}
});
}
</script>
<button onclick="javascript:hw();">CLick me</button>
</body>
2.PHP:
<?php
echo $_POST['param'];
?>
的AJAX調用返回與 'A B C' 而不是 'A + B + C'。爲什麼'+'被編碼爲''(空格)?
然後,我嘗試使用POST請求的內容類型作爲'text/plain'
而不是默認'application/x-www-form-urlencoded'
。在這種情況下,$_POST['param']
出來是空的?我想了解這兩種情況究竟發生了什麼。我在服務器端做什麼來取回原始數據('+')?
由於他使用jQuery,這是最簡單和最乾淨的解決方案! +1! – jwueller 2010-10-08 12:10:29
這是爲什麼這樣工作? jquery內部使用encodeURIComponent? – letronje 2010-10-08 18:50:53
@letronje我檢查jquery的源,並且發現:S [s.length] = encodeURIComponent方法(鍵)+ 「=」 + encodeURIComponent方法(值); – barbushin 2010-10-08 19:16:35