2017-11-11 163 views
2

所以我有一個應用程序需要發送數據到由我們的團隊負責人使用NodeJS與Express.js創建的API。204錯誤代碼然後500錯誤代碼響應

在我的結尾,我有laravel應用程序使用VueJS的用戶界面。在Vue JS組件中。我正在使用axios向API請求。

axios.post('https://clearkey-api.mybluemix.net/sendcampaign', request) 
       .then(function(response) { 
        //console.log(response); 

       }) 

然而,它返回204意味着根據這個https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

204無內容

服務器已經履行了請求,但不需要返回 實體主體,並且可能要返回更新的元信息。 響應可能包含以 實體標題形式的新的或更新的元信息,如果存在,應該與 請求的變體相關聯。

如果客戶端是用戶代理,則不應將其文檔視圖 從導致請求發送的文檔視圖中更改。此響應爲 ,主要用於允許在沒有 引起用戶代理活動文檔視圖更改的情況下發生操作輸入,但 應將任何新的或更新的元信息應用於當前位於用戶代理活動視圖中的文檔 。

204響應不能包含消息體,因此始終由頭字段後的第一個空行終止 。

然後接下來返回500內部服務器錯誤。所以在我看來,它返回這個錯誤,因爲沒有內容要從服務器返回?

你能告訴我爲什麼它返回這個響應的其他可能的問題?

回答

3

檢查204的「HTTP方法」是否爲OPTIONS,以及500的方法是否爲POST

如果雙方都是這樣的,那麼你首先CORS pre-flight request(返回204 OPTIONS),然後看到實際的請求(返回500 POST)。

CORS飛行前請求是當網頁和後端託管在不同地址時,瀏覽器發送到服務器的特殊HTTP消息。例如,如果您的網站託管在http://localhost,但您嘗試訪問的後端託管在https://clearkey-api.mybluemix.net

204的原因僅僅意味着您的後端端點已正確設置爲處理/sendcampaign的請求(您可以忽略它)。 500的原因是因爲處理該端點的函數的實現中存在一些例外。

+0

感謝您花時間回答我的問題。是的,204 =選項和500 = POST。我沒有得到這個「500的原因是因爲在處理該端點的函數的實現中存在一些異常。」這是我的一個功能,還是我的團隊負責人創建的API的功能? –

+0

500由後端服務器託管的代碼返回:「https:// clearkey-api.mybluemix.net」。因此,如果您的團隊負責人爲端點「/ sendcampaign」創建了代碼,那麼他的方面存在問題,因爲即使您發送的請求不正確,服務器也應該使用錯誤「400」而不是「500」 。 – MondKin

+1

謝謝你。我們會看看它。 –