簡體   English   中英

使用超級代理和 Lumen API 被 CORS 策略阻止的請求

[英]Request blocked by CORS policy using superagent and a Lumen API

我已經使用 PHP Lumen框架創建了一個 REST API,我刪除了所有用於開發的 CORS 限制:

// Enable CORS on all API routes
header('Access-Control-Allow-Origin: *');
header("Access-Control-Expose-Headers: Content-Length, X-JSON");
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Authorization, Lang, Content-Type, X-Auth-Token');

然后在前端我使用庫superagent來調用它。 例如,我調用路由POST http://127.0.0.1:8000/auth/register

superagent.post('http://127.0.0.1:8000/auth/register').send({
  name: 'name',
  email: 'test@test.test',
  password: '1234Test'
}).type('application/json')
  .end((err, res) => {
    console.log(res)
    console.log(err)
  })

遺憾的是,我收到一條我無法理解的 CORS 錯誤消息:

從源“ http://localhost:9000 ”訪問“ http://127.0.0.1:8000/auth/register ”的 XMLHttpRequest 已被 CORS 策略阻止:對預檢請求的響應未通過訪問控制檢查:它沒有 HTTP ok 狀態。

我做了一些研究,但我找不到任何關於錯誤的東西It does not have HTTP ok status並且在 Postman 上測試這個相同的請求給我沒有錯誤但是正常的行為。

有人知道我該如何解決嗎? 在哪里可以找到有關此類錯誤的一些文檔?

我很好奇你為什么要自己“手動”設置標題,而不是使用一些現有的和經過驗證的 CORS-Middlewares 來為你做所有的魔法。 我會避免重新發明輪子,除非你在研究案例中需要它。

這是stackoverflow上的一個副本:

在流明中啟用 CORS

這是關於流明中間件的官方文檔:

https://lumen.laravel.com/docs/7.x/middleware

以下是一些結構良好且眾所周知的中間件,它們將為您完成這項工作:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM