Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从url读取txt文件(javascript)_Javascript_Html_Css_Ajax - Fatal编程技术网

从url读取txt文件(javascript)

从url读取txt文件(javascript),javascript,html,css,ajax,Javascript,Html,Css,Ajax,我正在尝试从用户提供的外部链接读取.txt文件,以便以后在应用程序中使用它们。现在我只想在div(.output)中显示它们。我走了这么远,现在我被卡住了,真的不知道如何继续 函数getText(url){ var request=new XMLHttpRequest(); 打开('GET',url,true); 请求发送(空); request.onreadystatechange=函数(){ if(request.readyState==4&&request.status==200){ v

我正在尝试从用户提供的外部链接读取.txt文件,以便以后在应用程序中使用它们。现在我只想在div(.output)中显示它们。我走了这么远,现在我被卡住了,真的不知道如何继续

函数getText(url){ var request=new XMLHttpRequest(); 打开('GET',url,true); 请求发送(空); request.onreadystatechange=函数(){ if(request.readyState==4&&request.status==200){ var type=request.getResponseHeader('Content-type'); if(type.indexOf(“text”)!=1){ 返回request.responseText; } } } } $(“.url输入”).change(函数(){ getText($(“.url输入”).value); });
.output{
宽度:500px;
高度:500px;
边框:1px纯黑;
}
JavaScript get(注意,您必须输入扩展名为(.txt)的文件名): 只需将值更改为val():

jQuery获取: 将所有javascript替换为以下几行:

$(".url-input").change(function() {
    $.get($(this).val(), function( data ) {
        $('.output').html(data);
    });
});
这是一个更好的选择,因为Ajax Get是一个异步调用,所以您需要更新回调的输出值

顺便说一句,在进行Ajax调用之前,您应该对该use输入进行一些验证。另外,要消除在输入中添加“.txt”的需要,请将其更改为:

$(".url-input").change(function() {
    $.get($(this).val()+'.txt', function( data ) {
        $('.output').html(data);
    });
});

看起来您正在网页上使用jQuery,因此您可能希望尝试使用jQuery的AJAX处理而不是JavaScript的本机方法;使用IMHO更容易:
$(“.url input”)。value
是错误的,
value
是DOM属性。使用jQuery的
.val()
或使用本机DOM对象是否尝试Fiddler查看从URL返回的确切内容?@dustmouse遗憾的是,我不知道Fiddler是什么意思,现在我要去谷歌了:跨源请求被阻止:同源策略不允许读取远程资源。这可以通过将资源移动到sa来解决我可以在浏览器中打开.txt文件而不会出现问题(通过将url粘贴到浏览器url中)你有本地的文本文件吗?在你的服务器上试试。如果你试图加载一个远程文件,它不是那么简单,因为你可以看到你遇到了一个跨域的问题。如果它是json文件,你可以使用jsonp调用。那么,让我们从这个开始-文本文件和脚本在同一台服务器上吗?嘿,我以前有本地文件,只是打开它用(input type=“file”)按钮将它们连接起来,但现在我希望能够链接到不同服务器上的.txt文件,主要是为了让用户可以上传他们的文件,然后链接到他们。我应该通过输入类型文件上传文件到我的服务器,然后从那里加载它们吗?我想我也需要ajax,对吗?
$(".url-input").change(function() {
    $.get($(this).val()+'.txt', function( data ) {
        $('.output').html(data);
    });
});