Экспериментировал с некоторыми базовыми постами 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'. Почему «+» кодируется в «» (пробел)?
Затем я попытался использовать тип содержимого почтового запроса в качестве 'text/plain'
вместо значения по умолчанию 'application/x-www-form-urlencoded'
. В этом случае $_POST['param']
выходит пустым? Я хочу понять, что именно происходит в обоих этих случаях. Что я делаю на стороне сервера, чтобы вернуть исходные данные ('+')?