如何在XMLHTTPRequest中通过javascript更新url

如何在XMLHTTPRequest中通过javascript更新url,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我正在尝试更新javascript函数中的URL,例如 http://tmaserv.scem.uws.edu.au/chapters/?n=0 http://tmaserv.scem.uws.edu.au/chapters/?n=1 等等。 我尝试过使用for循环,但它不起作用 Javascript: function do_exercise () { var x = new XMLHttpRequest();{ x.open('GET', 'http://tmase

我正在尝试更新javascript函数中的URL,例如

http://tmaserv.scem.uws.edu.au/chapters/?n=0
http://tmaserv.scem.uws.edu.au/chapters/?n=1
等等。
我尝试过使用for循环,但它不起作用

Javascript:

function do_exercise () {
    var x = new XMLHttpRequest();{
        x.open('GET', 'http://tmaserv.scem.uws.edu.au/chapters/?n=0', true);
        x.onreadystatechange = function() {
            if (x.readyState == 4 && x.status ==200) {
                obj = (x.responseText);
                JSON.parse(x.responseText);
                obj = JSON.parse(obj);
                document.getElementById("section1").innerHTML =
            obj.data
            }
        }
        x.send(null);
    }
}
<nav>           
    <button onclick="do_exercise();">Next section</button>      
</nav>
<section id = "section1">
    <h1>Heading One</h1>
    <p>Paragraph One.</p>
</section>
HTML:

function do_exercise () {
    var x = new XMLHttpRequest();{
        x.open('GET', 'http://tmaserv.scem.uws.edu.au/chapters/?n=0', true);
        x.onreadystatechange = function() {
            if (x.readyState == 4 && x.status ==200) {
                obj = (x.responseText);
                JSON.parse(x.responseText);
                obj = JSON.parse(obj);
                document.getElementById("section1").innerHTML =
            obj.data
            }
        }
        x.send(null);
    }
}
<nav>           
    <button onclick="do_exercise();">Next section</button>      
</nav>
<section id = "section1">
    <h1>Heading One</h1>
    <p>Paragraph One.</p>
</section>

下一节
标题一
第一段


您可以这样做:

var requestNum = 0;

function do_exercise () {
    var x = new XMLHttpRequest();
    // adjust the GET URL to reflect the new n value and request as before
    x.open('GET', 'http://tmaserv.scem.uws.edu.au/chapters/?n=' + requestNum, true);
    x.onreadystatechange = function() {
        if (x.readyState == 4 && x.status ==200) {
            obj = (x.responseText);
            JSON.parse(x.responseText);
            obj = JSON.parse(obj);
            document.getElementById("section1").innerHTML = obj.data;
            requestNum++;
        }
    }

    x.send(null);
}
这有意义吗?请注意,我删除了一些大括号,我认为这一行是错误的
var x=new-XMLHttpRequest();{

我还建议使用for-your-AJAX调用,以实现更好的浏览器兼容性和更干净的代码


编辑:使我的答案简单得多。感谢Robert指出我在哪里想得太多了!

更新URL的标准是什么?每次按钮按URL增量1单击数字时?我尝试创建一个变量,并将其添加到URL末尾,然后使用for循环进行增量但是似乎没有工作,我没有真正理解第一个函数中发生了什么,也没有学到这些东西是的,这将不起作用,因为这是一个ajax调用,位置的值不会改变。搜索不会改变…因此页码永远不会增加。啊,很好的一点@Robert,我的错误。给我一分钟来编辑我的答案并解释一下OData that.Rory-url返回一个json字符串,其中包含要附加到主机页的数据。主机页查询字符串中不保留页码。使用递增的全局变量替换查询字符串读取器,您将得到一个有效的答案。哈哈哈,效果很好!!感谢Rory:)非常感谢您的帮助