2017-05-23 7 views
0

私はFlaskサーバーを実行しています。 JSファイルは、POST要求を介してサーバーにデータを送信します。これはサーバーコードです:POSTからデータを返す

@app.route('/approve', methods=['POST']) 
def approve(): 
    try: 
     assignmentId = request.form['assignmentId'] 
     response = client.approve_assignment(
      AssignmentId=assignmentId 
     ) 
     return make_response(jsonify(response), response['ResponseMetadata']['HTTPStatusCode']) 
    except ClientError as e: 
     return make_response(jsonify(e.response), e.response['ResponseMetadata']['HTTPStatusCode']) 

JSでは、アクションが成功したかどうかを知らせるアラートが必要です。失敗した場合、具体的なエラーは何ですか?しかし、返されたデータは空であり、ユーザーに特定のエラーを通知するためにチェックできませんでした。

$.post("http://cronus.eecs.northwestern.edu/mturk/approve", 
      {assignmentId: assignmentId, 
      OverrideRejection: false}, 
      function(data, status) { 
      console.log(data); 
      console.log(status); 
      if (status == 200) { 
       alert("Approved successfully"); 
      } else { 
       alert("Error"); 
      } 
      }); 

どうすればこの問題を解決できますか? Flaskコードで正しい応答オブジェクトを使用しなかったため、データはnullですか?

答えて

1

これには.failを使用する必要があります。

$.post("example.php", function() { 
    alert("success"); 
    }) 
    .done(function() { 
    alert("second success"); 
    }) 
    .fail(function(error) { 
    alert(`error ${error}`); 
    }) 
    .always(function() { 
    alert("finished"); 
    }); 
1
I hope this can help you. 

var request = $.ajax({ 
    url: url, 
    method: 'post', 
    data: {...}, 
}); 

request.done(function(message) { 
    alert(message); 
}); 

request.fail(function(error) { 
    alert(error); 
}); 
関連する問題