gpt4 book ai didi

javascript - AJAX,将附加变量传递给回调并将 XMLHTTLRequest.response 存储到变量

转载 作者:行者123 更新时间:2023-12-02 15:34:27 24 4
gpt4 key购买 nike

我尝试使用标准函数 loadDoc(url, cfunc) 读取服务器上的本地文件,然后

1) 在文件中搜索特定字符串(getLine());

2) 如果可能,将该行存储到变量中。

对于第 1 点,我将一个字符串传递给回调。2) 获取响应是有问题的,因为 XMLHTTPRequest 是异步的。此时的错误是:“ReferenceError:xhttp 未定义”

function main(){
var url="data.txt"
var str="1,0,"; //just an example
var myCallBackWithVar = function(){
getLine(str);
};
loadDoc(url, myCallBackWithVar);

//Can I get the line here somehow?
}

function loadDoc(url, cfunc) {
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
cfunc(xhttp);
}
}
xhttp.overrideMimeType('text/plain');
xhttp.open("GET", url, true);
xhttp.send();
}

//Find string with the desired data in txt file
function getLine(str) {
var data=xhttp.responseText;
//Find the line from the txt file
var start=data.indexOf(str);
var end=data.indexOf(";",start);
var line=data.substring(start,end);
return line;
}

data.txt 是这样的:

some data here
0,0,9;
1,0,10;
1,1,11;

我已经尝试传递 XMLHTTPRequest 对象 getLine(xhttp,str)。第1点和第2点如何解决?我宁愿暂时保持 jQuery 免费。谢谢

最佳答案

Can I get the line here somehow?

我认为这不是一个好主意。您无法确定您的应用程序能否正常运行。 XHR 是一个异步函数,您应该使用异步架构。

这里是如何实现此功能的示例。

    var text; // define global variable
var str = "1,0,"; //just an example

function main(){
var url = "data.txt";
var cb = function (data){
text = getLine(data);
// you can use text var here
// or in anyewhere in your code
}

loadDoc(url, cb);
}

function loadDoc(url, cb) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
cb(xhr.responseText);
}
}
xhr.overrideMimeType('text/plain');
xhr.open("GET", url, true);
xhr.send();
}

//Find string with the desired data in txt file
function getLine(data) {
if(data) {
//Find the line from the txt file
var start = data.indexOf(str);
var end = data.indexOf(";", start);
var line = data.substring(start, end);

return line;
}
}

关于javascript - AJAX,将附加变量传递给回调并将 XMLHTTLRequest.response 存储到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33057129/

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