使用 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

相關文章
相關標籤/搜索