2017-10-06 4 views
-1

jquery $.ajaxを使用したときにpostmanを使用して呼び出すとうまく動作するラムダ(ノード)関数があります。AWS API Gateway Lambda関数はPostmanで動作しますが、jqueryでは使用できません

この関数は、javascript/jqueryを使用してローカルのhtmlページから呼び出されています。

私は「Allow-Control-Allow-Origin」クロムプラグインを有効にしました。

要求はpossmanとjQueryを使用して同じjsonオブジェクトを渡します。

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

次のゲートウェイリクエストマッピングテンプレートを試しました。私は次の行

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

    を参照してもノードオブジェクトをログに記録する場合

    1. $input.json('$')

      私はエラーを取得する:

      Could not parse request body into json: Unrecognized token

  • +2

    jQuery.ajaxリクエストはどのように見えますか?あなたは 'Content-Type:application/json'ヘッダを渡していますか? – fubar

    +0

    ラムダプロキシの統合はどうですか?はるかに簡単です。スイッチングはすぐに問題を解決することはありませんが、保守やトラブルシューティングが容易になります。 – dashmug

    +0

    var hardobj = { \t \t "deviceid": "ADKNDND" \t}; \t $アヤックス({ \tタイプ: 'POST' \t URL:API_URL、 \tデータ:hardobj、 \tデータ型: 'JSON' \tヘッダー:{ \t \t「アクセス制御-Allow- X-Amz-Security-Token '、 'アクセス制御を許可するヘッダー ':コンテンツタイプ、X-Amz-Date、承認、X-Api-Key、コントロール許可 - 資格情報 ':true、 'コンテンツタイプ ':'アプリケーション/ json ' \t}、 \t crossDomain:true、(データ){\t console.log( "error =" + JSON.stringify(data)); \t} \t}); – user2324723

    答えて

    0

    これを最後に解決しました。 chrome allow cross originプラグインを使用することに加えて、jquery ajaxを使用する場合、データオブジェクトを文字列として送信する必要があります。

    データ:JSON.stringify(hardobj)

    希望は他の誰かがこれを理解しようとして週を無駄にする必要はありません。

    関連する問題