[英]GET file content from external JSON file
我正在尝试从外部JSON文件获取文件内容,但在警报中我一直保持null。
JS:
function getText() {
var result = null;
var file = 'file.json';
$.ajax({
type: 'get',
data: 'data',
dataType: 'json',
async: false,
success: function() {
var ranData = data[Math.floor(Math.random() * data.length)];
result = ranData;
}
});
alert(result);
}
外部档案:
var data = [
["a", "word 1"],
["e", "word 2"],
["i", "word 3"],
["o", "word 4"],
["u", "word 5"]
]
当我在同一文件中使用data
数组时,它工作正常。 我在做什么? 任何帮助将不胜感激!
更新:
function readFiles() {
var result = null;
var file = 'dictionary.js';
$.ajax({
url: file,
type: 'get',
data: 'data',
dataType: 'script',
async: false,
success: function(data) {
var randomData = data[Math.floor(Math.random() * data.length)];
result = randomData;
}
});
alert(result);
}
仍然获得空值。
您忘记了将data
参数传递给成功回调函数,但同时也忘记了设置将请求发送到的url参数:
function getText() {
var result = null;
$.ajax({
urL: 'file.json',
type: 'GET',
data: 'data',
dataType: 'json',
async: false,
success: function(data) {
var ranData = data[Math.floor(Math.random() * data.length)];
result = ranData;
}
});
alert(result);
}
还有一件事。 您实际上不应该在ajax中使用async:false
,因为同步ajax将完全冻结浏览器,直到ajax请求完成。 您应该在成功回调中处理数据。 我还注意到,在成功回调中,您正在检查数组长度data.length
,由于您希望以JSON格式从服务器取回数据(您将dataType
选项设置为json
),所以这可能行不通。
您尝试加载的文件不是JSON格式,而是javascript代码。 删除var =
语句,一切都会正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.