我想写一些代码来从aJax调用中返回一些数据。
以下是我所指的资源:http://www.w3schools.com/jquery/ajax_ajax.asp
这是我写的代码:
var data = getData("http://www.file.txt", function(result));
alert(data);
function getData(dataUrl, result)
{
$.ajax({url: dataUrl, success: function(result){
return result;
}});
}
我收到以下错误:
Uncaught SyntaxError:意外的令牌)
在这行代码中:
var data = getData("http://www.file.txt", function(result));
此外,上述代码在获取大量数据时是否有效?
由于
答案 0 :(得分:0)
这不是回调的正确语法,加上异步调用并不是那样的。请尝试此操作 - 在回调中设置data
。
var data;
getData("http://www.file.txt");
function getData(dataUrl)
{
$.ajax({url: dataUrl, success: function(result){
data = result;
alert(data);
}});
}
答案 1 :(得分:0)
从JavaScript基础知识来看,函数应该满足以下要求。
因此代码行实际上是不正确的。
var data = getData("http://www.file.txt", function(result));
它应该是以下任何一种。
var data = getData("http://www.file.txt", function(result) {
//anonymous function body
});
或
var data = getData("http://www.file.txt", callbackFn(result));
function callbackFn(result) {
//function body goes here.
}
答案 2 :(得分:-1)
您没有传递括号,因此您获得未捕获的SyntaxError:意外的令牌错误
的
的var data = getData("http://www.file.txt", function(result){});
的 但我认为你必须使用这样的功能
的
的function getData() {
return Promise(function(resolve, reject) {
$.ajax({
// ...
success: function(data) {
resolve(data);
},
error: function(jqxhr, status, error) {
reject(error);
}
});
});
}
getData("http://www.file.txt").then(function(result) {
console.log(result);
}).catch(function() {
// an error occurred
});
的
答案 3 :(得分:-1)
如果您正在使用ajax调用,那么在接收数据后,您必须使用success
或.then
作为回调执行。
代码应该只是这样:
var data = '';
$.ajax({url: dataUrl, success: function(result){
data = result;
alert(data);
}});