使用ajax脚本传递base 64字符串

时间:2015-05-26 05:19:32

标签: php ajax post base64 content-type

我使用以下脚本将字符串url传递给另一个php页面。

            function saveIt(){

                var xmlhttp = new XMLHttpRequest();

                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        alert("Save successfully!");
                    }
                }

                var value1 = document.getElementById("url").value ;
                var value2 = document.getElementById("time").value;
                var value3 = document.getElementById("note").value;

               xmlhttp.open("POST", "insertFrame.php", true);
               xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
               xmlhttp.send("url="+ value1 + "&time=" + value2 + "&note=" + value3);



            }

之后,我将检索到的数据插入表

$url = $_POST['url'];
$time = $_POST['time'];
$note = $_POST['note'];

mysql_connect("localhost", "root", "");
mysql_select_db("studioassessor_01");

mysql_query("INSERT INTO frame VALUES ('$url', '$time', '$note')");

但是,当我想从db中检索url以显示图像时,它会失败并且看起来像已损坏。

    <?php

        $con = mysql_connect("localhost", "root", "");
        mysql_select_db("studioassessor_01");

        $sql = mysql_query("SELECT * FROM frame");

        while($row = mysql_fetch_array($sql)){
            echo '<img src="' . $row['url'] . '">';

            echo "<br/><br/>";
            echo $row['note'];
        }

    ?>

在我更改了代码并进行测试之后,我发现了xmlhttp.setRequestHeader(&#34; Content-type&#34;,&#34; application / x-www-form-urlencoded&#34;);是传递给另一个php页面并存储在db中时使我的url成为不同值的可能原因。我可以知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我使用str_replace解决了我的问题(&#39;&#39;,&#39; +&#39;,&#34;你的字符串&#34;)。这是因为编码时的字符串值将全部更改为空格并且缺少+号。因此,我需要将其替换回来以获取正确的url值并显示图像。谢谢。