我需要用JavaScript做一个HTTP GET的请求.最好的方法是什么?

我需要在MacOSX Dashcode小部件中执行此操作.

推荐答案

浏览器(和Dashcode)提供可用于从JavaScript发出HTTP请求的XMLHttpRequest对象:

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

但是,不鼓励同步请求,并将生成以下警告:

注意:从Gecko 30.0(Firefox 30.0/Thunderbird 30.0/SeaMonkey 2.27)开始,synchronous requests on the main thread have been deprecated是因为对用户体验的负面影响.

您应该发出异步请求,并在事件处理程序中处理响应.

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);
}

Javascript相关问答推荐

输入有关HTML复选框的已判断属性的信息

除了在Angular 16中使用快照之外,什么是可行且更灵活的替代方案?

单击按钮后未清除 Select

如何在使用fast-xml-parser构建ML时包括属性值?

如何解决CORS政策的问题

在Angular中将样式应用于innerHTML

TypeScript索引签名模板限制

为什么按钮会随浮动属性一起移动?

无法读取未定义错误的属性路径名''

XSLT处理器未运行

如何使onPaste事件与可拖动的HTML元素一起工作?

使用Java脚本导入gltf场景并创建边界框

将内容大小设置为剩余可用空间,但如果需要,可在div上显示滚动条

面对代码中的错误作为前端与后端的集成

如何防止ionic 输入中的特殊字符.?

第一项杀死下一项,直到数组长度在javascript中等于1

如何在AG-Grid文本字段中创建占位符

如果我的列有条件,我如何呈现图标?

JQuery使用选项填充HTMLSELECT并设置默认结果,默认结果显示为空

如何检测当前是否没有按下键盘上的键?