【问题标题】:What is the plain JavaScript equivalent of this jquery.ajax call? [closed]这个 jquery.ajax 调用的纯 JavaScript 等价物是什么? [关闭]
【发布时间】:2013-02-19 22:02:44
【问题描述】:

如何在不使用 jQuery 而只使用纯 JavaScript 的情况下重写下面的 jQuery.Ajax 调用?

谢谢!

$.ajax({
    type: 'POST',
    url: url,
    contentType: 'application/json',
    data: JSON.stringify(request),
    success: function (result) {
        alert("Submitted succesfully!");
    },
    error: function (jqXHR, textStatus, errorThrown) {

        alert('Error Occured' + errorThrown);
    }
});

【问题讨论】:

    标签: javascript ajax jquery xmlhttprequest


    【解决方案1】:

    如果你真的想知道 jQuery 中的 ajax 函数到底是做什么的,请打开 jquery 源代码并查看 ajax 函数,这里是源代码的链接。

    http://code.jquery.com/jquery-1.9.1.js
    

    如果你想在没有 jQuery 的情况下这样做,你必须创建一个 Xml Http Request

    http://www.w3.org/TR/XMLHttpRequest/

    这基本上就是 AJAX(异步 javascript 和 xml)。

    这是一个例子:

    var xmlhttp;
    
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
    }
    
    else{ // code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    xmlhttp.open("GET","ajax_info.txt",true);
    xmlhttp.send();
    
    xmlDoc=xmlhttp.responseXML;
    

    这将创建一个 xmlhttp 对象,并使用 GET 将其发送到指定的 url,在本例中是一个 txt 文件,并询问它的内容。数据以xml形式返回,我们保存到xmlDoc。现在,您可以随意使用数据。

    我希望这会有所帮助!

    【讨论】:

    • 是的,但我不确定这是 OP 正在寻找的信息,尽管他们可能会澄清。
    • 听起来好像他们只是想执行 AJAX 调用,他们对 jQuery 内部要做的所有额外的选项处理等并不感兴趣。
    • 嗯,jQuery 做了很多,它不像 $.ajax() 会做一行代码,所以这真的不是一个简单的问题,唯一的办法就是查看源代码.
    • 好吧,如果他有兴趣为 ajax 创建一个新的库,请继续,但要澄清一下。 Ajax 是一个 XmlHttpRequest,w3.org/TR/XMLHttpRequest
    • @StefanKonno 同意——我的意思是我认为他们正在寻找一种老式的、非库的方式来发出 JSON Ajax 请求。 (与“替换每一个 jQuery 功能”相反。我可能是错的,这就是为什么我希望 OP 能够解释他们正在寻找的确切内容。)
    猜你喜欢
    • 2013-04-07
    • 2016-07-04
    • 1970-01-01
    • 2020-05-01
    • 2013-12-16
    • 1970-01-01
    • 2019-09-26
    • 2013-01-07
    • 2021-08-14
    相关资源
    最近更新 更多