我一直在追蹤我無法看到我的webapi在angularjs中使用$ http的響應的原因,如果狀態代碼小於200且大於300.爲什麼angularjs丟棄http狀態代碼<200 && > 300的消息響應?
我已經調試過angular.js到點我明白髮生了什麼(基本上它丟棄包含我關心數據的承諾,並沒有創造一個新的,如果狀態碼不被認爲是成功的)
- 見代碼在https://github.com/angular/angular.js/blob/master/src/ng/q.js#L270-L280
這。$$ state.value(持有http響應)由於某種原因在此處丟失。
忽略原始值是否有意義?我不會在沒有詢問我是對還是錯的情況下提交錯誤報告。
所有這一切背後的原因是我正在處理服務器端的一些信用卡信息。如果處理器說它是一張無效卡,我不認爲它會是一個200代碼,對嗎?看到這個問題的答案.....建議400的業務規則。這仍然在angularjs失敗。
What is the appropriate HTTP status code response for a general unsuccessful request (not an error)?
此外,僅供參考,httpInterceptors沒有任何工作,因爲這個「承諾更換」發生後,他們被利用。
我不確定在問題結束時如何重複您的標題使這對堆棧溢出非常好的問題。 – TylerH
這不是唯一的http客戶端:我的Oracle服務總線的http連接器有類似的問題,它丟棄了某些代碼的響應。這是一種優化,他們認爲某些代碼的錯誤消息是不相關的。 – Aaron
您提到的Angular代碼的部分與HTTP狀態代碼完全無關。 – Pointy