angular.js - angularjs每当发起$http的get请求时发生两次同样的请求是什么原因以及如何解决

查看:222
本文介绍了angular.js - angularjs每当发起$http的get请求时发生两次同样的请求是什么原因以及如何解决的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如题,angularjs每当发起$http的get请求时发生两次相同的请求。

如下图:

每次发生相同的请求,前一次的请求(Initiator: angular.js)返回空,后续的请求(Initiator: Other)才返回数据。

这是如何发生的呢?能不能只请求一遍?

解决方案

OPTIONS请求是信使请求,在跨域请求之前,浏览器会先发送OPTIONS请求去获取服务器请求访问头,如果OPTIONS请求被拒绝,则不会继续后续的GET/POST/PUT/PATCH等操作。

前面请求,由于只是去探路的,只请求数据头部,所以返回空是正常的。如果前面的OPTIONS访问的头部信息被服务器拒绝,那么后面一次请求就不会被发起。

这个是HTTP自身的特性,不用特意去处理,如果是自己的服务器的话,只需要在后台给所有的OPTIONS类型请求返回空就可以了(这只是以防万一,因为OPTIONS只请求数据头部,总是会返回空)。

这篇关于angular.js - angularjs每当发起$http的get请求时发生两次同样的请求是什么原因以及如何解决的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆