JavaScript中的HTTP GET请求?

我需要在JavaScript中执行HTTP GET请求。 什么是最好的方式来做到这一点?

我需要在Mac OS X dashcode小部件中执行此操作。


您可以通过javascript使用托管环境提供的功能:

function httpGet(theUrl)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
    xmlHttp.send( null );
    return xmlHttp.responseText;
}

但是,同步请求是不鼓励的,所以你可能想用它来代替:

function httpGetAsync(theUrl, callback)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() { 
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
            callback(xmlHttp.responseText);
    }
    xmlHttp.open("GET", theUrl, true); // true for asynchronous 
    xmlHttp.send(null);
}

注意:从Gecko 30.0(Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27)开始,由于对用户体验的负面影响, 主线程上的同步请求已被弃用


在jQuery中:

$.get(
    "somepage.php",
    {paramOne : 1, paramX : 'abc'},
    function(data) {
       alert('page content: ' + data);
    }
);

上面提供了许多伟大的建议,但不是很可重复使用,而且经常充满了DOM废话和其他易于隐藏代码的绒毛。

这里有一个我们创建的Javascript类,它可以重复使用并且易于使用。 目前它只有一个GET方法,但对我们很有用。 添加一个POST不应该征税任何人的技能。

var HttpClient = function() {
    this.get = function(aUrl, aCallback) {
        var anHttpRequest = new XMLHttpRequest();
        anHttpRequest.onreadystatechange = function() { 
            if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
                aCallback(anHttpRequest.responseText);
        }

        anHttpRequest.open( "GET", aUrl, true );            
        anHttpRequest.send( null );
    }
}

使用它和以下一样简单:

var client = new HttpClient();
client.get('http://some/thing?with=arguments', function(response) {
    // do something with response
});
链接地址: http://www.djcxy.com/p/15925.html

上一篇: HTTP GET request in JavaScript?

下一篇: Proxying a site to be able to WYSIWYG edit in iframe