关于php:如何使用Javascript ajax发送网址?

how to send a url using Javascript ajax?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to encode a URL in JavaScript?

我尝试使用以下代码将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地址混淆了,不知道它只是一个值,但不知道如何解决它)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
         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


您需要对参数进行编码

1
xmlhttp.open("GET","Photos.php?a="+encodeURIComponent(url),true);

您需要对URL进行编码。您可以使用encodeuricomponent(str)和encodeuri(str),如下所示:

1
2
var eurl = encodeURIComponent("http://www.example.com/help.jpg?x=10&a=12&b=4");
xmlhttp.open("GET","Photos.php?a=" + eurl, true);