假如你刚刚使用最新最好的JavaScript框架构建了一个非常酷的博客应用程序。您脚手架使用应用程序Nuxt.js,使用构建组件Vue.js和使用Vuex状态管理。在后端,您使用Node.js,FeathersJS和Express创建API 。您的后端通过API向您的前端提供博客文章数据。
在将代码推送到服务器之前,您决定测试一切是否正常工作。您的Vue应用程序http://localhost:3000在API服务器运行时运行http://localhost:8000。您http://localhost:3000在Web浏览器中访问并发现错误。没有从API加载数据!不好了!
请保持冷静。当您尝试调试情况,像任何优秀的Web开发人员一样,您可以在浏览器的DevTools中查找答案。
您看到的第一件事是控制台中出现以下错误。
臭名昭着的臭名昭着的CORS Policy Access-Control-Allow-Origin错误
“好吧!”,你对自己说,“API中可能存在一个错误。我只会使用Postman来调试API!“ 你打开邮递员并发送GET请求[http://localhost:8000/api](http://localhost:8000/api.?source=post_page---------------------------)。
这是你得到的:
成功的API响应
“什么?API正在运作?那为什么我的JavaScript代码失败了呢?“
我甚至不记得我发现自己处于相同情况的次数。我总是谷歌错误并得到一些StackOverflow答案告诉我添加CORS支持。而且我会做,通过添加Access-Control-Allow-H