1

我正在使用SendGrid解析API(https://sendgrid.com/blog/parse-webhook-tutorial/)來獲取傳入的電子郵件正文發佈到AWS API網關。AWS API網關返回400錯誤請求,但郵遞員正常工作

當我將webhook發送到requestb.in時,我得到的答案很好。

當我使用Postman僞造請求到我的服務器時,我得到了正確的響應。

當我告訴SendGrid發送webhook到我的服務器,但是,我從SendGrid得到一個400錯誤的響應錯誤,我的服務器永遠不會命中(所以我假設API網關拋出錯誤)。

有什麼簡單的我失蹤了嗎?我嘗試設置CORS,但那不是它(或者我設置錯了)。

我很難過。

謝謝!

+0

「服務器」在這種情況下有點含糊不清。您能否通過區分您對API網關端點和您的後端/集成端點所做的測試請求來澄清? –

+0

也可以確保內容類型和接受標頭正確傳遞到API網關? –

回答

0

我剛剛調試了一個API網關問題,該問題拋出了與CORS相關的錯誤消息,並且請求從未打過我的服務器,但真正的問題是源於請求中的數據。

所以我發現如果請求有任何問題,API網關會拋出一個默認的400錯誤,說沒有Allow-Access-Control-Origin頭。這可以讓你相信你的CORS有問題。如果您設置了MOCK GET請求,請在瀏覽器中發出請求,並驗證它在瀏覽器開發人員工具的網絡選項卡中返回200,則可以消除CORS問題。

一旦我知道它只來自POST請求,它必須是數據的問題。我正在發送一個JSON散列而沒有將其字符串化。所以解決方案是使用JSON.stringify(request_data)

我會檢查請求的數據格式。如果您將問題和回答添加到您的問題中,我可能會進一步提供幫助。