调用函数时未捕获的SyntaxError:意外的令牌

时间:2015-06-24 05:39:49

标签: javascript syntax-error

我想写一些代码来从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));

此外,上述代码在获取大量数据时是否有效?

由于

4 个答案:

答案 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基础知识来看,函数应该满足以下要求。

  1. 使用function关键字定义JavaScript函数,后跟名称,后跟括号()。
  2. 一个函数基本上是一个JavaScript对象。因此,括号是必需的,因为它们将功能与脚本或网页的其他项目分开。
  3. 因此代码行实际上是不正确的。

    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);
    }});