簡體   English   中英

將ajax jquery請求更改為XMLHttpRequest

[英]Changing ajax jquery request to a XMLHttpRequest

我有jquery這個Ajax請求:

$(document).ready(function () {
    var pageName;

    $('li a').on('click', function (){
        pageName = $(this).attr('data-url');

        $.ajax({
            type: 'GET',
            url: 'http://mywebsite.com/' + pageName + '/?json=1',
            contentType: 'application/json',
            dataType: 'jsonp',
            success: function(data) {
                var page = data.content;
                $('.mypage').html(page);
            }
        })
    });
});

而且我想更改為XMLHttpRequest,所以我這樣做了:

function showPage () {

    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function () {
        if (httpRequest.readyState == 4) {
            document.getElementById('.mypage').innerHTML = httpRequest.responseText;
        }
    };

    var attr = document.getElementByTagName(this);
    var pageName = attr.getAttribute('data-url');
    var url = 'http://mywebsite.com/' + pageName + '/?json=1',

    httpRequest.open('GET', url);
    httpRequest.send();
}

它根本不起作用,有人知道我做錯了嗎?

這行是錯誤的:

document.getElementById('.mypage').innerHTML = httpRequest.responseText;

以開頭的選擇器. 是類選擇器,而不是ID。 它應該是:

document.getElementsByClassName('mypage')[0].innerHTML = httpRequest.responseText;

我假設您在此類中只有一個元素。 如果有多個,則需要將其更改為設置它們的循環。

但是,您不能將XMLHttpRequest與JSONP dataType一起使用。 看到

使用JsonP的JavaScript XMLHttpRequest

有關如何使用原始Javascript實現JSONP的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM