2015-07-13 59 views
1

我正在測試AWS的API網關,我無法讀取包含在來自Angular的POST請求中的查詢字符串參數。

但是,當我使用cURL時,AWS的API網關會檢測到查詢字符串參數,所以這必須是一個Angular問題。我是否錯過了標題或其他內容?

僅供參考,我已經在API網關上正確設置了模板映射,所以這不是問題。

https://cabvt12afasf4.execute-api.us-east-1.amazonaws.com/resource?access_token=1234112313123 

resourceCreate: { 
     method: 'POST', 
     isArray: false, 
     params: { 
      access_token: access_token 
     }, 
     url: 'https://cabvtj3br4.execute-api.us-east-1.amazonaws.com/resource' 
    }, 
+0

它不是角度問題,您可以驗證鉻控制檯 –

+0

的網絡標籤請求我一直在尋找在網絡選項卡,並要求確實出現了看起來正常。但是,AWS的API網關並未檢測到它,雖然它在CURL請求中和AWS API網關提供的測試控制檯中檢測到... – ac360

+0

嘗試使用郵遞員客戶端來測試它是否接受其請求 –

回答

1

的問題是這樣的:

角設置Content-Type頭的application/json;charset=UTF-8,這是打破了AWS API網關。

在我的Angular $資源中切換內容類型爲application/json解決了問題。

createResource: { 
     method: 'POST', 
     isArray: false, 
     headers: { 
      'Content-Type': 'application/json' 
     }, 
     url: 'http://www.resource.com/create' 
} 
+1

如果您在「Integration Request」面板上更改了輸入標題以符合您的要求,我對編碼輸出有類似的問題。我不得不在我的輸出中將'charset = UTF-8'添加到'Content-Type'的末尾。 – kixorz

+0

這也是正確的。但是我擔心如果不附加'charset = UTF-8',我會阻止其他人使用API​​。我不知道它有多普遍...... – ac360

+0

是的,你可以改變Angular設置嗎?這是很常見的,它不在那裏,我的API網關響應出現問題,瀏覽器沒有將響應視爲UTF-8。 – kixorz