将带有字符%20的url作为ajax变量传递

时间:2012-12-06 07:32:22

标签: php jquery ajax url

我需要将一个url传递给php页面。 url可能包含也可能不包含特殊字符和编码变量。 例如,考虑ajax请求。

var url = 'http://siteaddr.com/abc%20cdf%202012%20movies%20software/';
$.get('check_link.php',{url:url},function(){
    //some function
});

php页面中变量$_GET['url']的回显结果为http://siteaddr.com/abc cdf 2012 movies software/ %20的转换为空格。我需要收到网址。 尝试编码和解码网址。但是我没有得到我想要的结果。

1 个答案:

答案 0 :(得分:0)

  1. 您不应该使用将用作键的名称定义变量。
  2. 在发送之前再次对URL进行编码将使PHP解码为双重编码的URL。

    var link = 'http://siteaddr.com/abc%20cdf%202012%20movies%20software/';
    $.get('check_link.php',{url: encodeURIComponent(link)}, function(){
        //some function
    });
    // Double encoded URL: Note that % has become %25
    // http%3A%2F%2Fsiteaddr.com%2Fabc%2520cdf%25202012%2520movies%2520software%2F
    
  3. http://jsfiddle.net/zNqac/