let*_*nje 1 php parameters post encoding
正在尝试使用PHP的一些基本的http帖子,并遇到了这个问题.
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>
Run Code Online (Sandbox Code Playgroud)
2.PHP:
<?php
echo $_POST['param'];
?>
Run Code Online (Sandbox Code Playgroud)
ajax调用以'abc'而不是'a + b + c'返回.为什么'+'被编码为''(空格)?
然后我尝试使用post请求的内容类型'text/plain'而不是默认值'application/x-www-form-urlencoded'.在这种情况下,$_POST['param']出来是空的?我想了解这两种情况究竟发生了什么.我在服务器端如何取回原始数据('+')?
使用
data: 'param='+encodeURIComponent('a+b+c')
Run Code Online (Sandbox Code Playgroud)
代替
data: 'param=a+b+c'
Run Code Online (Sandbox Code Playgroud)
并且您将能够正常使用数据而无需解码.
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |