使用 core.js 解决 GraphQL Mock Server 跨域问题

最近在作GraphQL相关的前端开发,因为后端进度较慢,因此使用了 Apollo 的 Mocking Server.
开发过程当中遇到一个问题就是,前端经过 graphql访问 基于 express 的graphql mock server 的时候会报异常。在medium上找到一篇相关文章,翻译出来供你们参考。


经过报错应该能够肯定是由于跨域的缘由。
跨域未启用的时候究竟发生了什么致使了上面的报错?
实际上,CORS其实是客户端和服务器之间通讯流程的一种规范。在某些状况下,这个流程须要服务器处理HTTP OPTIONS请求,正以下面这个流程图能够所示:跨域资源请求须要额外的OPTIONS HTTP request.


问题所在就是,express-graphql 和apollo-server 不接受除了 GET 和 POST 之外的请求,因此请求失败致使异常出现:OPTIONS http://localhost:4000 405 (Method not allowed).

不过问题也很容易解决。因为 express-graphql 和 apollo-server 都是基于express.js的。因此能够用 cors 这个middleware来修复这个问题。

首先安装 cors.js  前端

npm install cors --save复制代码
而后在 server.js里使用。

具体代码以下:git


再次请求,便可正常访问:




 原文连接
github

相关文章
相关标签/搜索