将LoadVars和sendAndLoad从actionscript转换为javascript

问题描述

我是一名初级程序员,正在尝试将Actionscript中的程序转换为javascript。

到目前为止,我可以完成我需要的所有转换,但是下面的代码使我陷入困境。

我知道变量fileName和测试ID已发送到位于URL interfaceUrl + "operation=" + Test的脚本中,并且答案存储在lvReply中。

我需要在JavaScript中执行哪些代码/功能

我正在查看XMLHttpRequest,但不知道这是否是前进的正确方法。为我指明正确方向的任何帮助将不胜感激。

var lv:LoadVars = new LoadVars();

    lv.fileName = fileName;
    lv.lpTestId = testId;

var lvReply:LoadVars = new LoadVars();
        
lv.sendAndLoad(interfaceUrl + "operation=" + Test,lvReply,"POST");

解决方法

LoadVars只是从服务器加载名称/值对,格式为:

someText=testing&myVariable=123

对于JavaScript,您可以使用:

XHR:
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

加载数据,然后:

URLSearchParams来解析它们:
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

以下是一些伪代码来演示:

let xhr = new XMLHttpRequest();

//load data,sending params to server via query string
xhr.open('GET','http://example.com/data?args1=boof&arg2=banana'); 

xhr.onload = function() {
  if (xhr.status != 200) { 
    //check status code to see what happened
  } else {

    //data sent from server in the form of foo=bar&biff=bam
    let data = xhr.response;

    let params = URLSearchParams(data);

    let foo = params.get(foo);
    console.log(foo); // prints bar
  }
};

xhr.onerror = function(err) {
  //something went wrong
};

xhr.send();

更好的解决方案是仅从服务器发送JSON并使用JSON.parse()解析

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

注意,在上面的示例中,它还将数据发送到服务器。您也可以使用XHR(通过GET或POST)来做到这一点。