将参数传递给GET-Request

时间:2018-07-02 04:55:31

标签: javascript arrays parameter-passing

早上好,

我只有一个小问题可以解决此问题:

我有一个页面,该页面在打开并在自己的内容中显示时应该从URL获取一些数据。但是GET网址包含我网址中的参数。

所以: 1.从我的网址中获取参数,例如www.mydomain.com?test=1&test1=bla 2.使用此参数(1和bla)打开GET并显示结果

这是我当前的版本:

<body>
  <h3>Visa Informationen</h3>
  <p id="data"></p>
  <script>
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
        document.getElementById("data").innerHTML = myObj.response.visa.content;
      }
    };
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
  </script>
  <script>
    function getURLParameter(name) {
      var value = decodeURIComponent((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, ""])[1]);
      return (value !== 'null') ? value : false;
    }

    var param = getURLParameter('test');
    if (param) document.getElementById("testnr").innerHTML = param;

    var param1 = getURLParameter('test1');
    if (param1) document.getElementById("testnr1").innerHTML = param1;

    var url = "https://api01.otherdomain.com?test=" + param + "&test1" + param1 + "&trv=0&vis=1"
  </script>  
</body>

此代码有问题的任何提示吗?

亲切的问候, 克里斯

2 个答案:

答案 0 :(得分:1)

您似乎对脚本执行顺序有疑问。

我假设testnr元素来自您的XML ajax请求。

HTML中有两个脚本块,它将在页面加载时执行。

第二个脚本块正在运行时,您的第一拳XMLHttpRequest未完成,因此无法找到给定的HTML标签document.getElementById("testnr").innerHTML

要解决此问题,仅在XMLHttpRequest请求完成后才需要执行脚本。

您的情况:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
        document.getElementById("data").innerHTML = myObj.response.visa.content;
// Execute new created function here 
        SetValues();

    }
};
xmlhttp.open("GET", url, true);
xmlhttp.send();


function getURLParameter(name) {
  var value = decodeURIComponent((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, ""])[1]);
  return (value !== 'null') ? value : false;
}

function SetValues()
{
var param = getURLParameter('test');
if (param) document.getElementById("testnr").innerHTML = param;

var param1 = getURLParameter('test1');
if (param1) document.getElementById("testnr1").innerHTML = param1;

var url = "https://api01.otherdomain.com?test=" + param + "&test1" + param1 + "&trv=0&vis=1"
}
</script>

答案 1 :(得分:0)

好的,我解决了这个问题。

这里的结果对我来说很好:

    <script>
function getURLParameter(name) {
  var value = decodeURIComponent((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, ""])[1]);
  return (value !== 'null') ? value : false;
}

var param = getURLParameter('test');

var param1 = getURLParameter('test1');

var url = "https://api01.otherdomain.com?test=" + param + "&test1" + param1 + "&trv=0&vis=1"
</script>

<script>
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
        document.getElementById("additionalContent").innerHTML = myObj.response.additionalContent;
        document.getElementById("data").innerHTML = myObj.response.visa.content;
    }
};
xmlhttp.open("GET", url, true);
xmlhttp.send();

</script>