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); |