我的web应用程序根目录中有一个文本文件http://localhost/foo.txt我想把它加载到javascript中的一个变量中。。在groovy中,我会这样做:
def fileContents = 'http://localhost/foo.txt'.toURL().text;
println fileContents;
如何在javascript中获得类似的结果?
XMLHttpRequest,即AJAX,没有XML。
你这样做的确切方式取决于你使用的JavaScript框架,但是如果我们忽略互操作性问题,你的代码看起来会像:
var client = new XMLHttpRequest(); client.open('GET', '/foo.txt'); client.onreadystatechange = function() { alert(client.responseText); } client.send();
不过,通常来说,XMLHttpRequest并不是在所有平台上都可用,所以需要做一些修改。同样,最好的选择是使用像jQuery这样的AJAX框架。
另外一个需要考虑的问题是:这只在foo的时间内有效。txt在同一个域上。如果它位于不同的域上,则同源安全策略将阻止您读取结果。
下面是我在jQuery中是如何做到的:
jQuery.get('http://localhost/foo.txt', function(data) {
alert(data);
});
fetch('http://localhost/foo.txt')
.then(response => response.text())
.then((data) => {
console.log(data)
})
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API