我从textarea发送以下数据:
<?php
for ($x=0; $x<=10; $x++)
{
echo "The number is: $x <br>";
}
?>
但是当我从服务器上的客户端获取数据时,它变得如下所示。它逃脱了++
是特殊字符的标志。
<?php
for ($x=0; $x<=10; $x)
{
echo "The number is: $x <br>";
}
?>
如何在发送数据时获取数据?
答案 0 :(得分:1)
通过HTTP GET使用加号提交原始输入将导致不发送加号。这是一个保留字符。 See here.
您的旧代码手动构建了GET请求:
var code = "code=" + code;
$.ajax({
// ...
data: code,
/// ...
});
但是你从未使用过encodeURIComponent(code)
,因此导致你的加号丢失到规格的大脑中。
var code = "code=" + encodeURIComponent(code);
如果你传递一个普通的对象,jQuery会自动执行此操作。构建网址很烦人,所以这是我喜欢的模式:
$.ajax({
// ...
data: {
code: code
},
/// ...
});
答案 1 :(得分:0)
如果没有对其余代码发表评论,则表示您正在执行GET请求。对于网址编码,+
符号等于空格。但是如果你想在提交数据时保留那些加号(+
),你必须对字符串进行url编码。有一个函数,encodeURIComponent(str)
。我建议你使用它。除此之外,请小心你明智地评估php。
通常,表单会为您处理此问题,但由于您正在规避该操作,因此这是其中一项修复。