Angular 4调用两次oauth/token的原因可能是由于以下情况之一:
- 代码逻辑问题:在Angular 4应用程序中,可能存在某个地方重复调用了oauth/token接口。这可能是由于代码中的错误、重复的订阅或其他逻辑错误导致的。
- 跨域请求问题:如果Angular 4应用程序与后端API不在同一个域下,可能会触发浏览器的跨域请求机制。在这种情况下,浏览器会首先发送一个预检请求(OPTIONS请求),然后再发送实际的POST请求。这可能导致oauth/token接口被调用两次。
- 拦截器或中间件问题:Angular 4中常常使用拦截器或中间件来处理HTTP请求。如果在拦截器或中间件中对oauth/token接口进行了处理,可能会导致多次调用。
为了解决这个问题,可以采取以下步骤:
- 检查代码逻辑:仔细检查Angular 4应用程序中与oauth/token相关的代码,确保没有重复调用该接口的逻辑。
- 检查跨域请求设置:如果应用程序与后端API不在同一个域下,确保服务器端已正确配置CORS(跨域资源共享)。同时,可以在Angular 4应用程序中使用代理配置来解决跨域请求问题。
- 检查拦截器或中间件:如果使用了拦截器或中间件来处理HTTP请求,确保没有对oauth/token接口进行重复处理的逻辑。
总结起来,调用两次oauth/token接口可能是由于代码逻辑问题、跨域请求问题或拦截器/中间件问题导致的。通过仔细检查代码和相关配置,可以解决这个问题。