Javascript 获取类型错误:无法读取属性';数据';在尝试包含我用AngularJS创建的AuthInterceptor服务时

Javascript 获取类型错误:无法读取属性';数据';在尝试包含我用AngularJS创建的AuthInterceptor服务时,javascript,angularjs,Javascript,Angularjs,所以是的,当我尝试将AuthInterceptor包含到index.html中时,我遇到了一个奇怪的类型错误。当我尝试加载localhost:8080/#/login时,出现了这个错误,它显示了我的登录页面。不包括在这里,因为它不相关。在index.html中删除指向AuthInterceptor的链接时,我的登录页面成功呈现 js/app/services/AuthInterceptor.js index.html 角度应用 问题在于,在您的拦截器中,只有在遇到401错误时才传递响应,拦截器

所以是的,当我尝试将AuthInterceptor包含到index.html中时,我遇到了一个奇怪的类型错误。当我尝试加载localhost:8080/#/login时,出现了这个错误,它显示了我的登录页面。不包括在这里,因为它不相关。在index.html中删除指向AuthInterceptor的链接时,我的登录页面成功呈现

js/app/services/AuthInterceptor.js index.html

角度应用

问题在于,在您的拦截器中,只有在遇到401错误时才传递响应,拦截器的目标是在请求之前或之后运行代码,并传递错误/响应

你应该始终如一地传递它们。记录到控制台的错误只意味着你在应用程序的另一部分中发出的请求失败,因为你没有传递响应,承诺的.then()中的数据参数没有定义,它会抛出一个错误

this.response = function(response) {

  if (response.status === 401) {

    alert('STATUS 401!');
    return response;
  }

  return response; // Always return response
};

希望它能有所帮助。问题是,在你的拦截器中,你只有在遇到401错误时才传递响应,拦截器的目标是在请求之前或之后运行代码,并传递错误/响应

你应该始终如一地传递它们。记录到控制台的错误只意味着你在应用程序的另一部分中发出的请求失败,因为你没有传递响应,承诺的.then()中的数据参数没有定义,它会抛出一个错误

this.response = function(response) {

  if (response.status === 401) {

    alert('STATUS 401!');
    return response;
  }

  return response; // Always return response
};

希望它能有所帮助

您选择从示例中编辑代码,这表明“它不相关”。但是,您在此处发布的代码在中复制时不会引发任何错误。此外,此处未引用任何错误提示无法访问的
数据
属性。您应该尝试确定产生错误所需的最小代码更改,并更新问题。另请参阅,包括您正在使用的Angular和Angular ui路由器的完整版本号可能会有所帮助。可能您正在使用的ui router版本与与其配对的angular版本不兼容。您已选择从示例中编辑代码,表示“不相关”。但是,您在此处发布的代码在中复制时不会引发任何错误。此外,此处未引用任何错误提示无法访问的
数据
属性。您应该尝试确定产生错误所需的最小代码更改,并更新问题。另请参阅,包括您正在使用的Angular和Angular ui路由器的完整版本号可能会有所帮助。可能您正在使用的ui路由器版本与其配对的angular版本不兼容。
this.response = function(response) {

  if (response.status === 401) {

    alert('STATUS 401!');
    return response;
  }

  return response; // Always return response
};