查询字符串插件将+转换为%2B

时间:2012-02-07 16:52:26

标签: jquery query-string

使用此jquery插件:http://archive.plugins.jquery.com/project/query-object

所以我有这个网址:results?search_query=alex+voievod,我需要添加&page=2,我会用上面提到的插件添加它。

现在的问题是它将+转换为%2B并且它会影响我的视图页。我已尝试按照文档中的说明设置spaces: false(即使spaces: VALUE不是space

但是它不起作用,它会添加参数,但它也会如上所述改变+:

results?search_query=alex%2Bvoievod&page=2

我错过了什么?

  

空间

     

默认值为true,因为大多数人更喜欢将查询字符串中的加号转换为空格。这是标准的   练习使用加号来表示查询字符串中的空格   避免可怕的%20,因此解析器已更新,默认情况下,   将加号转换为空格。但是,可以禁用此功能   如果你决定在查询字符串中需要文字加号。

<script type="text/javascript"> $.query = { spaces: false }; </script>
<script src="<?=base_url();?>resources/js/libs/jquery.query.js"></script>

在jquery.query.js中:

new function(settings) { 
  // Various Settings
  var $separator = settings.separator || '&';
  var $spaces = settings.spaces === false ? false : true;
  alert($spaces);->Returns the value as set, true or false.
  var $suffix = settings.suffix === false ? '' : '[]';

我已经阅读了一些代码,但我找不到错误在哪里,spaces没有效果。

编辑: 我与$.query

一起使用的代码
var cur_page = $.query.get('page');
if (cur_page.length == 0){var next_page = cur_page + 2;}
else { var next_page = cur_page + 1; }
var page = $.query.set('page', next_page).toString();
alert(page);
/*window.location.replace(page);*/

我将尝试联系此插件的创建者:https://github.com/blairmitchelmore/jquery.plugins/blob/master/jquery.query.js

1 个答案:

答案 0 :(得分:0)

查看其源代码,我们看到如果您的查询字符串中有+,请将space设置为true,因为它会将它们转换为(空格) )然后使用toString()将它们转换回+。试试这个。

$.query = { spaces: true };
$.query.toString();