Ajax似乎没有使用POST或GET发送我的变量字符串

时间:2014-07-23 06:35:50

标签: ajax http-post http-get

我一直在尝试通过ajax发送一个sting,以便我的php可以使用POST方法从中获取并从中获取内容。我正在调整Adam Khoury的Web Intersect 2.0系列中的代码。在尝试调试的过程中,我决定将POST方法更改为GET方法,希望我尝试发送的变量sting会显示在URL中,但它始终保持空白。

我哪里出错了,现在已经开了大约一个星期了。我尝试过设置不同的提醒,回声等等,我无法弄清楚我的错误在哪里。我现在在代码中有一个警报,它在变量字符串发送到页面之前运行,现在警报显示我希望通过POST或GET发送的代码,但不是。

以下是我目前的代码,仅针对我尝试工作的功能,如果您想了解更多代码,请告知我们,您可以在{{3}处看到表单/页面。 },它的主要目标是从用户那里获取输入,使用下面的代码将它们全部附加在一起,然后我可以将它拆分并在PHP之后获得我想要的结果。

function cleanURL(){
var params = []; //creates an array to store the form data
var facebook_url = _("facebook_link").value;
var twitter_url = _("twitter_link").value;
var google_url = _("google_link").value;
var instagram_url = _("instagram_link").value;
var youtube_url = _("youtube_link").value;
var personal_url = _("personal_link").value;
var saved = "true";

if(facebook_url == "" && twitter_url == "" && google_url == "" && 
   instagram_url == "" && youtube_url == "" && personal_url == "" ){
    _("status").innerHTML = "Please provide at least one link before clicking submit";
} else {_("submitbtn").style.display = "none";
    _("status").innerHTML = 'please wait ...';
    var ajax = ajaxObj("GET", "test2.php");

    if (facebook_url !== "") {
        params.push("fb=" + facebook_url); //creates key value pair and adds to array
    }

    if (twitter_url !== "") {
         params.push("tw=" + twitter_url); //creates key value pair and adds to array
    }

    if (google_url !== "") {
        params.push("go=" + google_url); //creates key value pair and adds to array
    }

    if (instagram_url !== "") {
         params.push("in=" + instagram_url); //creates key value pair and adds to array
    }

    if (youtube_url !== "") {
        params.push("yt=" + youtube_url); //creates key value pair and adds to array
    }

    if (personal_url !== "") {
         params.push("pe=" + personal_url); //creates key value pair and adds to array
    }

    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
          _("status").innerHTML = ajax.responseText;
        }
    }
}
alert(params.join("&"));
ajax.send(params.join("&")); // sends the array of key value pairs to php and joins enteries with &

1 个答案:

答案 0 :(得分:0)

对于GET,您可以将参数直接附加到URL,而不是将其传递给ajax.send。

使用以下代码,它适用于我使用POST。请确保仅在创建AJAX对象时发送请求 - 因此在else分支中:

    // ...
    } else {_("submitbtn").style.display = "none";
        _("status").innerHTML = 'please wait ...';
        var ajax = ajaxObj("POST", "test2.php");

        if (facebook_url !== "") {
            params.push("fb=" + facebook_url); //creates key value pair and adds to array
        }

        // …

        ajax.onreadystatechange = function() {
            if(ajaxReturn(ajax) == true) {
              _("status").innerHTML = ajax.responseText;
            }
        }
        ajax.send(params.join("&"));     
    }