6

重複の可能性:
JavaScriptでURLをエンコードする方法は?

次のコードを使用してURLをphpコードに送信しようとしていますが、phpコードで「a」変数の値を取得するとURLに&a = 12&b = 4が含まれるため、アドレスの最後の部分が削除されます。

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 に答える