我正在尝试使用JQuery读取和解析文本文件,而我正在使用的代码似乎出错了。
//Attempt 6
alert("Test Alert 9"); //js file does load into index.html
$.get( "exchanges.txt",
function( data ) {
//idk what the following two lines do, I got them from:
//http://api.jquery.com/jquery.get/
$( ".result" ).html( data );
alert("check it");
})
//should execute if works?
.done(function() {
alert( "second success" );
})
//should execute if any error
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
以下提醒打印:
我的问题: 有没有办法检查错误是什么? 和/或有谁知道错误可能是什么?
编辑:为了澄清,exchanges.txt文件与js文件位于同一文件夹中
编辑:已更新以向控制台抛出错误。错误打印:
XMLHttpRequest cannot load file:///C:/Users/Invictus/Documents/GitHub/BTCExchangesMaterialize/exchanges.txt. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
通过将exchanges.txt移动到主文件夹而不是js /文件夹来修复此错误。
新错误:
XMLHttpRequest cannot load
file:///C:/Users/Invictus/Documents/GitHub/BTCExchangesMaterialize/exchanges.txt.
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.jquery-2.1.1.min.js:4 n.ajaxTransport.k.cors.a.crossDomain.sendjquery-2.1.1.min.js:4 n.extend.ajaxjquery-2.1.1.min.js:4 n.each.n.(anonymous function)exchangesParser.js:3 (anonymous function)
答案 0 :(得分:0)
在fail
函数中,传递response
。然后您可以使用响应对象。检查浏览器的控制台(开发人员工具)
.fail(function( response) {
console.log("my error response is",response);
alert( "error" );
})
答案 1 :(得分:0)
$.get
是$ .ajax的缩写,其中一些设置已预先启用。
$ .get的签名是:
$.get([String] url, [Object|String] urlparams, [Closure] callback);
在AJAX查询成功后,
callback
已经过了。
如果您计划使用jQuery promise方式,则省略成功回调,并使用其承诺方法.done()
,.fail()
和.always()
成功回拨方式
$.get( "exchanges.txt", function( data ) {
$( ".result" ).html( data );
alert("checked it");
});
承诺方式
$.get( "exchanges.txt")
.done(function( data ) {
$( ".result" ).html( data );
alert("checked it");
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
可以看出,promises在处理程序上更具体,因为你可以调用一个函数获得更多的点,这是因为$.get
(如前所述)是{{1}的缩写。 }。看一下$.ajax
电话已展开至$.get
:
$ .ajax Way
$.ajax
请记住,当使用$.ajax({
url: "exchances.txt",
success: function(data){
$(".result").html(data);
alert("checked it");
},
error: function(response){
alert("error");
},
complete: function(response){
alert("done");
},
});
引用它时,AJAX请求无法完成本地文件,您应该通过http(apache,node),ftp或任何其他您想要的协议访问它们,但永远不要在{ {1}}
了解更多: