我们正在使用vue.js和Node.js (Express)构建SPA。SPA是从1个域下载的,REST位于另一个域中。
问题是,我注意到Chrome在对另一个不同于下载网页的域执行ajax调用(CORS请求)时只执行2次请求,而不是1次。
在进行了一些研究之后,我得出结论,这是一个特性,而不是一个bug。
那么,以优雅的方式解决这一问题的最佳方法应该是什么呢?
目前,我使用200个状态响应放弃了第一个请求,但我不认为这是最好的方法。
发布于 2018-02-27 16:30:07
如果发送的第一个请求是OPTIONS请求,那么它很可能是一个CORS飞行前。浏览器使用它来询问服务器是否允许它提交实际请求。
如果您的服务器正在运行业务逻辑以响应预运行,那么您还没有正确地实现CORS - HTML5Rocks提供了这个方便的流程图,说明它应该如何工作:

这看起来可能有点让人难以抗拒--谢天谢地,您不必担心这一点,因为已经有一个提供此功能的用于Express的官方CORS中间件,等等。如果插入,应该可以从应用程序中删除所有显式的res.header("Access-Control-Allow-Origin", "*")内容。
https://stackoverflow.com/questions/49013125
复制相似问题