【问题标题】:Ajax doesn't seem to send my variable string using either POST or GETAjax 似乎没有使用 POST 或 GET 发送我的变量字符串
【发布时间】:2014-09-14 05:16:08
【问题描述】:

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

我哪里出错了,这已经困扰我大约一周了。我试过设置不同的警报、回声等,但我就是不知道我的错误在哪里。我目前在代码中有一个警报,它在变量字符串发送到页面之前运行,现在警报显示我希望通过 POST 或 GET 发送但不是的代码。

以下是我当前的代码,仅用于我正在尝试实现的功能,如果您想要更多代码,请告诉我,或者您可以在http://www.vwrx-project.co.uk/test2.php 看到表单/页面,其主要目标是从用户那里获取输入,使用下面的代码将它们全部附加在一起,然后我可以将其分解并使用 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 &

【问题讨论】:

    标签: ajax http-post http-get


    【解决方案1】:

    对于 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("&"));     
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      • 2016-07-30
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 2014-03-24
      • 2023-03-09
      相关资源
      最近更新 更多