如何获得特殊角色?

时间:2013-12-07 06:50:58

标签: javascript php jquery ajax

我从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>";
  }
?>

如何在发送数据时获取数据?

2 个答案:

答案 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。

通常,表单会为您处理此问题,但由于您正在规避该操作,因此这是其中一项修复。