【问题标题】:What's a url-friendly way to pass a long mixed string variable from javascript into a GET url variable?将长混合字符串变量从 javascript 传递到 GET url 变量的 url 友好方式是什么?
【发布时间】:2013-09-15 07:46:14
【问题描述】:

我继承了一个带有简单 AJAX GET 处理程序的项目,该处理程序主要用于简单的namevalue 对简单变量(即?type=new&id=4)。但现在我需要传递一个小段落大小的文本字符串,其中可以包含各种有趣的字符。通常我会发布这种类型的变量,但现在它是一个极端情况,我宁愿不重写整个 AJAX 服务器端处理程序。

鉴于这些限制,您会推荐什么?

要传递的示例字符串:

Lorem ipsum! Dolor=sit&amet, `consectetur` "adipiscing 'elit'." Sed sollicitudin lorem justo, in vulputate nulla eleifen. Duis est rhoncus.

我可以通过 JavaScript 对它进行编码,只要以后可以通过 PHP 对其进行解码。

你有什么推荐的?

最终它需要在这样的网址中:

/ajax-get-handler.php?string=[insert best practice encoded string here]

【问题讨论】:

  • 重写整个AJAX服务器端处理程序?你的意思是,用 $_POST['variable'] 替换 $_GET['variable']?并且不能忘记更改 $.ajax 方法来发布。让 URL 看起来像是来自 1999 年的 doubleclick.net 绝不是好的做法。
  • 哈哈哈。很好地重写 POST 将涉及触及所有其他脚本。最懒惰的选择是使用$_REQUEST['var']。但我想先看看这是怎么回事。 +1 双击。

标签: javascript jquery ajax url get


【解决方案1】:

你可以试试encodeURIComponent(),喜欢

"string=" + encodeURIComponent("your-long-text-here");

【讨论】:

  • 谢谢。一个快速的谷歌让我看到它在 php 端被解码为$jsonStr = stripslashes($_GET['string']); $json = json_decode ($jsonStr); 你听起来对吗?
  • @Ryan 在 PHP 端你可以使用 rawurldecode() 来解码参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 2011-04-02
相关资源
最近更新 更多