gpt4 book ai didi

javascript - 基于 Javascript REST/Ajax 的共享桌面和 Web

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:00 25 4
gpt4 key购买 nike

我正在运行一个带有基于 Web 的 JavaScript 客户端的 Node.js 后端来发送 AJAX 请求。

现在,我想使用纯 Javascript(即 Google 的 V8)制作一个小型桌面版本的 javascript 客户端。

在这种情况下,由于没有窗口/文档对象,如何启用桌面版本的 AJAX 支持?在完美的世界中,Web 和桌面版本将共享相同的代码?

或者我需要在 js 代码之外编写 AJAX 或 REST API,即作为 native 代码并从 js 调用它?

最佳答案

正如 Brad 所说,目前无法从 ECMAScript 非 Web 实现发出 http 请求,尽管 http://www.w3.org/TR/XMLHttpRequest/ 上有一个工作草案。将 XMLHttpRequest 集成到这些实现中(我猜是通过外部绑定(bind))。

我所做的是创建一个全局函数并在 Web 版本中实现它,如下所示:

function SendBackendRequest( url, parameters, func ) 
{
var request=new ajaxRequest();

request.onreadystatechange=function() {
if (request.readyState == 4) {
if ( request.status == 200 || window.location.href.indexOf("http") ==-1 ) {

func.call( this, request.responseText );
} else {
func.call( this, "" );
}
}
}

request.open( "POST", "http://localhost" + url, true );
request.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
request.send( parameters );
};

ajaxRequest=function()
{
var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];

if ( window.ActiveXObject ) {
// --- IE
for (var i=0; i<activexmodes.length; i++) {
try {
return new ActiveXObject(activexmodes[i])
}

catch(e) {
//suppress error
}
}
} else
{
if (window.XMLHttpRequest) // --- Mozilla, Safari etc
return new XMLHttpRequest();
else return false;
}
};

在桌面端,我也刚刚实现了 SendBackendRequest(),并且在我的客户端代码中可以使用相同的代码与后端进行通信。

关于javascript - 基于 Javascript REST/Ajax 的共享桌面和 Web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25944540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com