6

可能重复:
如何在 JavaScript 中编码 URL?

我正在尝试使用以下代码将 url 发送到 php 代码,但是由于 url 包含 &a=12&b=4 一旦我在我的 php 代码中获得“a”变量的值,地址的最后一部分被删除。

url = http://www.example.com/help.jpg?x=10&a=12&b=4 但我在 php 文件中得到的 url 是http://www.example.com/help.jpg?x= 10(&a=12&b=4被去掉了,我知道原因是javascript,ajax把它和url地址混在一起了,不知道它只是一个值但不知道如何解决)

         function upload(url){

            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    document.getElementById("output").innerHTML= xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","Photos.php?a="+url,true);
            xmlhttp.send();
     }        


   if(isset($_GET["a"]))
   {
       $Address = $_GET["a"];
       echo $Address;

   }

输出是 >>> " http://www.example.com/help.jpg?x=10 " 但它应该是http://www.example.com/help.jpg?x=10&a=12&b=4

4

2 回答 2

5

您需要对参数进行编码

xmlhttp.open("GET","Photos.php?a="+encodeURIComponent(url),true);
于 2013-01-07T21:34:10.537 回答
0

您需要对 URL 进行编码。您可以使用 encodeURIComponent(str) 和 encodeURI(str) ,例如:

var eurl = encodeURIComponent("http://www.example.com/help.jpg?x=10&a=12&b=4");
xmlhttp.open("GET","Photos.php?a=" + eurl, true);
于 2013-01-07T21:36:14.890 回答