我目前正在构建一个应该能够用作ftp类浏览器的网站。基本上我所拥有的是一个带有一些图像的ftp服务器。
我无法弄清楚的是:如果我浏览到这个ftp站点,我可以查看ftp站点的源代码(如某些浏览器中所示),我需要的是以某种方式将该源保存到字符串(使用javascript)。
原因是,我会制作一种“图像”浏览器。我计划通过将源读入字符串来完成它,然后复制所有图像源并使用innerHTML创建新的布局。
简而言之:我想从网址中读取信息并以不同的方式显示。
答案 0 :(得分:31)
你的回答是Ajax。它可以从URL发布和获取数据,就像浏览网站一样,它会将HTML作为字符串返回。
如果您打算使用jQuery(非常方便),则可以轻松使用Ajax。像这个例子(没有库时不起作用):
$.ajax({
url : "/mysite/file.html",
success : function(result){
alert(result);
}
});
如果您想使用默认的Javascript,请查看http://www.w3schools.com/ajax/default.asp
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "ajax_info.txt", true);
xmlhttp.send();
答案 1 :(得分:1)
Niels和rich.okelly所说的内容并不多。 AJAX是您的最佳选择。
请注意,跨域限制将禁止您访问数据that is not in the same domain. You'll find a possible workaround here.
答案 2 :(得分:1)
由于前面的答案可以使用HTTP和CORS,但我想你想看看this other thread。
答案 3 :(得分:1)
现代基于 Promise 的 Fetch API 解决方案(不再是 XMLHttpRequest 或 jQuery.ajax()
):
fetch('data.txt')
.then(response => response.text())
.then(data => console.log(data));
使用 async/await 的示例:
async function myFetch() {
let response = await fetch('data.txt');
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
let text = await response.text(); // await ensures variable has fulfilled Promise
console.log(text);
}
答案 4 :(得分:0)
在Javascript中获取数据而不使用alert():
$.ajax({
url : "/mysite/file.html",
async:false, //this is the trick
success : function(result){
//does any action
}
});