【问题标题】:Ajax without jQuery [duplicate]没有 jQuery 的 Ajax [重复]
【发布时间】:2012-11-28 04:57:55
【问题描述】:

可能重复:
How to make an ajax call without jquery?

我在 js(Ajax) 中有代码,但我想不使用 Ajax(XMLHttpRequest)

$.ajax({
            type:'POST',
            data:'slug='+prize,
            url:'/wybrana-nagroda/',
            success:function(msg)
            {
                $('#whaiting').hide();
                if(msg==='winner') 
                    $(window.location).attr('href','/formularz');
            }
        });

它应该是什么样子?

function send(post, url) {
  var client = new XMLHttpRequest();
  client.open("POST", url);
  client.send(message);
}

?

谢谢。

【问题讨论】:

标签: javascript ajax


【解决方案1】:

如果您希望它在所有浏览器上兼容,您需要执行以下操作:

function sendRequest(url,callback,postData) {
    var req = createXMLHTTPObject();
    if (!req) return;
    var method = (postData) ? "POST" : "GET";
    req.open(method,url,true);
    req.setRequestHeader('User-Agent','XMLHTTP/1.0');
    if (postData)
        req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    req.onreadystatechange = function () {
        if (req.readyState != 4) return;
        if (req.status != 200 && req.status != 304) {
//          alert('HTTP error ' + req.status);
            return;
        }
        callback(req);
    }
    if (req.readyState == 4) return;
    req.send(postData);
}

var XMLHttpFactories = [
    function () {return new XMLHttpRequest()},
    function () {return new ActiveXObject("Msxml2.XMLHTTP")},
    function () {return new ActiveXObject("Msxml3.XMLHTTP")},
    function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
    var xmlhttp = false;
    for (var i=0;i<XMLHttpFactories.length;i++) {
        try {
            xmlhttp = XMLHttpFactories[i]();
        }
        catch (e) {
            continue;
        }
        break;
    }
    return xmlhttp;
}

信用:quirksmode

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 2023-03-20
    • 2018-08-07
    • 1970-01-01
    • 2013-07-11
    • 2013-05-14
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多