2017-10-06 117 views
-1

我有一個lambda(節點)函數,當我使用郵遞員調用它時可以正常工作,但不是當我使用jquery $.ajax時。AWS API網關Lambda函數適用於Postman,但不適用於jquery

該函數正在使用javascript/jquery從本地html頁面調用。

我有'Allow-Control-Allow-Origin'chrome插件啓用。

該請求使用possman和jQuery傳遞相同的json對象。

{ 
    "deviceid" : "ZZ-5A-04-A6-XX-YY" 
} 

我嘗試了以下網關請求映射模板。

  1. $input.json('$')

    當我登錄偶數節點對象我看到以下行

    deviceid=ZZ-5A-04-A6-XX-YY 
    
  2. $input.body

    我得到的錯誤:

    Could not parse request body into json: Unrecognized token

+2

你的jQuery.ajax請求是什麼樣的?你傳遞一個'Content-Type:application/json'頭文件嗎? – fubar

+0

如何使用Lambda Proxy集成?它更簡單。切換不會立即解決您的問題,但它會更容易維護和排除故障。 – dashmug

+0

var hardobj = { \t \t「deviceid」:「ADKNDND」 \t}; \t $就({ \t類型: 'POST', \t網址:API_URL, \t數據:hardobj, \t數據類型: 'JSON', \t標頭:{ \t \t「訪問控制 - 允許 - 'Origin':'*', 'Access-Control-Allow-Headers':'內容類型,X-Amz-Date,授權,X-Api-Key,X-Amz-Security-Token', 'Access- Control-Allow-Credentials':true, 'Content-Type':'application/json' \t}, \t crossDomain:true, \t success:function(data){getdatasuccess(data)}, \t error:function(data){ \t console.log(「error =」+ JSON.stringify(data)); \t} \t}); – user2324723

回答

0

終於解決了。 除了使用chrome允許交叉原點插件外,當使用jquery ajax時,數據對象需要作爲字符串發送。

數據:JSON.stringify(hardobj)

希望別人沒有一個星期浪費試圖找出這一個。

相關問題