为什么在jQuery 1.4.4.min文件中出现意外的令牌错误?

为什么在jQuery 1.4.4.min文件中出现意外的令牌错误?,jquery,Jquery,为什么我会出现这个错误: Uncaught SyntaxError: Unexpected token < c.b.extend.globalEval jquery-1.4.4.min.js:32 c.extend.httpData jquery-1.4.4.min.js:144 c.extend.ajax.L.w.onreadystatechange jquer

为什么我会出现这个错误:

Uncaught SyntaxError: Unexpected token <
c.b.extend.globalEval                          jquery-1.4.4.min.js:32
c.extend.httpData                              jquery-1.4.4.min.js:144
c.extend.ajax.L.w.onreadystatechange           jquery-1.4.4.min.js:140
未捕获的语法错误:意外标记<
c、 b.extend.globalEval jquery-1.4.4.min.js:32
c、 extend.httpData jquery-1.4.4.min.js:144
c、 extend.ajax.L.w.onreadystatechange jquery-1.4.4.min.js:140
这个错误并没有指出我的JS中触发这个问题的地方。只有jQuery-min文件

如何调试并修复它

Edit1:下面是我关于这个错误的一些调用堆栈截图。但是仍然不确定哪个文件有jQuery调用的语法错误

编辑2:

以下是我的一些AJAX调用:

$('form#project-ajax-form').submit(function(){
    if(compv.steps.selectedClient.id != null){
    $('input#project_client_id').val(compv.steps.selectedClient.id);
        console.debug("Project Client Value: " + $('input#project_client_id').val());
        return true;
    }
    console.debug("Project Client Value not found");
    compv.tools.clientError();
    return false;
});    
$('#project-ajax-form')
        .bind("ajax:success", function(evt, data, status, xhr){
        compv.updateStepView('project', xhr);
});

$('#client-ajax-form')
    .bind("ajax:success", function(evt, data, status, xhr){
    console.log("Calling Step View");
    compv.updateStepView('client', xhr);
});

$('form#stage-ajax-form').submit(function(){
if(compv.steps.selectedProject.id != null){
$('input#stage_project_id').val(compv.steps.selectedProject.id);
    console.debug("Stage Project Value: " + $('input#stage_project_id').val());
    return true;
}
console.debug("Stage Project Value not found");
compv.tools.clientError();
return false;
});
$('#stage-ajax-form')
    .bind("ajax:success", function(evt, data, status, xhr){
    compv.updateStepView('stage', xhr);
});

$.ajaxSetup({
  beforeSend: function(xhr) {
    xhr.setRequestHeader("Accept", "text/javascript");
  }
});

$('.ajax-form')
.bind("ajax:success", function(evt, data, status, xhr){
  var $form = $(this);
    console.log("Form Success: %s", $(this).attr('id'));

  // Reset fields and any validation errors, so form can be used again, but leave hidden_field values intact.
  $form.find('textarea,input[type="text"],input[type="file"]').val("");
  $form.find('div.validation-error').empty();
})
.bind("ajax:failure", function(evt, xhr, status, error){
  var $form = $(this),
      errors,
      errorText;
    console.log("Form Failure: %s", $(this).attr('id'));

  try {
    // Populate errorText with the comment errors
    errors = $.parseJSON(xhr.responseText);
  } catch(err) {
    // If the responseText is not valid JSON (like if a 500 exception was thrown), populate errors with a generic error message.
    console.error("Server Error for Form: %s", $(this).attr('id'));
    errors = {"Server Error": "Please reload the page and try again"};
  }

  // Build an unordered list from the list of errors
  errorText = "There were errors: \n<ul>";

  for ( error in errors ) {
    errorText += "<li>" + error + ': ' + errors[error] + "</li> ";
  }

  errorText += "</ul>";

  // Insert error list into form
  var errorDiv = $form.find("div.validation-error");
  errorDiv.html(errorText);
  errorDiv.show(300);
});
$('form#projectajax form')。提交(函数(){
if(compv.steps.selectedClient.id!=null){
$('input#project_client_id').val(compv.steps.selectedClient.id);
调试(“项目客户机值:+$('input#Project_Client_id').val());
返回true;
}
调试(“未找到项目客户端值”);
compv.tools.clientError();
返回false;
});    
$(“#项目ajax表单”)
.bind(“ajax:success”,函数(evt、数据、状态、xhr){
公司更新视图(“项目”,xhr);
});
$(“#客户端ajax表单”)
.bind(“ajax:success”,函数(evt、数据、状态、xhr){
log(“调用步骤视图”);
compv.updatestpview(“客户端”,xhr);
});
$('form#stage ajax form')。提交(函数(){
if(compv.steps.selectedProject.id!=null){
$('input#stage_project_id').val(compv.steps.selectedProject.id);
调试(“阶段项目值:+$('input#阶段项目id').val());
返回true;
}
调试(“找不到阶段项目值”);
compv.tools.clientError();
返回false;
});
$(“#阶段ajax表单”)
.bind(“ajax:success”,函数(evt、数据、状态、xhr){
公司更新视图(“阶段”,xhr);
});
$.ajaxSetup({
发送前:函数(xhr){
setRequestHeader(“接受”、“文本/javascript”);
}
});
$(“.ajax表单”)
.bind(“ajax:success”,函数(evt、数据、状态、xhr){
var$form=$(此);
log(“表单成功:%s”,$(this.attr('id'));
//重置字段和任何验证错误,以便表单可以再次使用,但保留隐藏的字段值不变。
$form.find('textarea,input[type=“text”],input[type=“file”]”)val(“”);
$form.find('div.validation-error').empty();
})
.bind(“ajax:failure”,函数(evt、xhr、状态、错误){
var$form=$(此),
错误,
错误文本;
log(“表单失败:%s”,$(this.attr('id'));
试一试{
//用注释错误填充errorText
errors=$.parseJSON(xhr.responseText);
}捕捉(错误){
//如果responseText不是有效的JSON(如抛出500异常),则使用通用错误消息填充错误。
console.error(“表单%s的服务器错误,$(this.attr('id'));
错误={“服务器错误”:“请重新加载页面并重试”};
}
//从错误列表生成无序列表
errorText=“有错误:\n
    ”; for(错误中的错误){ errorText+=“
  • ”+错误+”:“+错误[错误]+”
  • ”; } errorText+=“
”; //在表单中插入错误列表 var errorDiv=$form.find(“div.validation-error”); errorDiv.html(errorText); 错误分类显示(300); });
调用堆栈表明jQuery正在从对AJAX请求的响应调用
eval

您正在调用
getScript
,以查找语法错误的Javascript文件



要回答上述问题,您可以切换到jQuery的调试版本(而不是
.min
)并使用诸如Firebug或Chrome的开发工具之类的调试器进行调试。

另一个问题回答了这一问题:

您应该能够在脚本调试器中看到调用堆栈,以及导致错误的原因,例如,Chrome中内置的那个。@jamietre如果这是一个愚蠢的问题,很抱歉,但我如何看待在OS X上Chrome中的调用堆栈?比如,我到底在哪里看?谢谢。右键单击“检查元素”脚本,然后在右边有一个“调用堆栈”部分。如果脚本调试器在错误发生时处于打开状态,它将已经存在。我已经用调用堆栈的屏幕截图更新了问题。但是,不确定如何找到被调用的带有语法错误的脚本。这是我第一次这样做,如果问题非常明显,我很抱歉。请检查Firebug或Chrome中的AJAX响应。我已经用调用堆栈的屏幕截图更新了问题。但是,不确定如何找到被调用的带有语法错误的脚本。这是我第一次这样做,所以如果问题非常明显,我很抱歉。我做错了什么?@marc:看看
数据
变量。这是HTML,不是Javascript。你为什么认为它是一个脚本?我没有特别的理由相信它是一个脚本——除了我过去遇到过这些问题之外,它总是与脚本相关联。但是,我在这方面是相当新的…所以…也就是说,我有一个数据属性作为各种HTML标记的一部分,我的JS中有一个本地数据变量。但我觉得我是在黑暗中拍摄,不知道该看哪一部。如何获取更具体的信息?如果对返回HTML的内容调用
$.getScript
,就会出现这种情况。检查AJAX代码。