我通過$ php -S localhost:8888 -t public
運行流明(5.3)API時,我通過郵遞員打任何端點它沒有失敗。然而,當我試着捲曲本地主機:8888/V1/auth /中例如登錄我提示以下錯誤:創建反應代理請求到php後端
curl: (7) Failed to connect to localhost port 8888: Connection refused
我做了一些問這個問題,一些用戶說,我可能需要之前閒逛爲我的一些路線啓用CORS。所以我繼續安裝https://github.com/barryvdh/laravel-cors#lumen並將其應用於所有路線。
但是,我仍然無法從終端窗口點擊任何終端。
最終目標
最終目標是從反應應用到管腔後端代理請求,但我不斷收到拒絕連接。
Proxy error: Could not proxy request /v1/auth/login from localhost:3000 to http://localhost:8888/ . See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).
是否有可能,我錯誤地配置在管腔手柄CORS中間件?
更新
我設法我的反應由應用程序只在注射請求的完整路徑,使我流明API的請求。例如,而不是/v1/auth/login
路徑現在是http://localhost:8888/v1/auth/login
。我設法得到這種通過增加mode: 'no-cors'
我取的工作:
function login(userData, onError, cb) {
return fetch('http://localhost:8888/v1/auth/login', {
mode: 'no-cors',
method: 'post',
body: JSON.stringify(userData),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
}).then(checkStatus)
.then(parseJSON)
.then(cb)
.catch(onError);
}
無模式:無CORS
理想我只想return fetch('/v1/auth/login', {
和代理的請求,而不模式:no-cors,但這似乎沒有工作。任何想法爲什麼?
此外,捲曲問題仍然存在。
如果Lumen在CORS未啓用的情況下拒絕請求,則會中斷 - 因爲啓用CORS的服務器系統上的唯一影響應該在該服務器系統上產生,只會導致它發送「Access-Control-Allow-Origin '響應頭和其他'Access-Control- *'頭。不啓用CORS不應導致服務器拒絕請求;相反,就CORS而言,阻塞發生的唯一地方是在客戶端,瀏覽器將阻止你的前端代碼訪問對跨源請求的響應,除非響應具有「Access-Control-Allow-Origin」頭文件 – sideshowbarker
至於'mode:'no-cors'',有兩個效果。首先,它會阻止你的前端代碼將任何「自定義」頭添加到請求中,其中「Content-Type:application/json」被定義爲該類別中的頭部之一。第二個效果是,它告訴瀏覽器在任何情況下都阻止您的前端代碼訪問響應。因此,在問題中的代碼中,效果是:該請求被髮送到服務器而沒有「Content-Type:application/json」頭,並且當服務器將響應發回時,瀏覽器阻止該代碼訪問它。 – sideshowbarker
我不知道是什麼原因導致了你使用curl看到的問題,但是如果你的目標是成功地獲得對該端點的POST請求的響應,&只有當你使用'mode:'no-cors''時纔有效,指示在POST之前瀏覽器發送的CORS預檢OPTIONS請求(由於Content-Type:application/json頭)失敗,或者服務器沒有發送訪問控制允許原始響應頭。請注意,即使CORS在服務器上未正確啓用,POST請求仍然可以成功 - 只是瀏覽器不會讓您的代碼訪問響應。 – sideshowbarker