小型Ajax JavaScript库

Tom*_* B. 25 javascript ajax

我正在寻找一个非常小的(一个线程)Ajax JavaScript库来添加一个小脚本的第一行来发出一些请求.

我已经尝试过:

但它们根本不起作用.备择方案?

Rya*_*nal 33

在这里,你很简单:

function createXHR()
{
    var xhr;
    if (window.ActiveXObject)
    {
        try
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e)
        {
            alert(e.message);
            xhr = null;
        }
    }
    else
    {
        xhr = new XMLHttpRequest();
    }

    return xhr;
}
Run Code Online (Sandbox Code Playgroud)

文档在这里

例:

var xhr = createXHR();
xhr.onreadystatechange = function()
{
    if (xhr.readyState === 4)
    {
        alert(xhr.responseText);
    }
}
xhr.open('GET', 'test.txt', true)
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.send()
Run Code Online (Sandbox Code Playgroud)

更新:

要进行跨域脚本编写,您必须调用本地服务器端代理(读取和回显远程数据),或者,如果远程服务返回JSON,则使用此方法:

var s = document.createElement('script')
s.src = 'remotewebservice.json';
document.body.appendChild(s);
Run Code Online (Sandbox Code Playgroud)

由于JSON本质上是一个JavaScript对象或数组,因此这是一个有效的源.理论上你应该能够直接调用远程服务.我没有测试过这个,但它似乎是一个公认的做法:

参考:在AJAX中调用跨域Web服务

  • @Tom我会说这值得一个问题. (3认同)

msa*_*nce 20

您可以构建自己的jQuery版本,只包含AJAX模块.

https://github.com/jquery/jquery#how-to-build-your-own-jquery
https://github.com/jquery/jquery#modules

  • 谢谢@phil,也许是一个心怀不满的情人 (2认同)
  • http://projects.jga.me/jquery-builder/表明即使是一个仅限ajax的jQuery 2.1.1也是18kb gzipped和minified(完整的jQuery是28kb).只是想提一下,因为我感到惊讶它并不小. (2认同)