我正在运行Flask服务器。 JS文件通过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代码中使用正确的响应对象?

最佳答案

您应该为此使用.fail

$.post( "example.php", function() {
   alert( "success" );
   })
  .done(function() {
    alert( "second success" );
  })
  .fail(function(error) {
    alert( `error ${error}` );
  })
  .always(function() {
    alert( "finished" );
  });

关于javascript - 从POST返回数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44125463/

10-09 00:46
查看更多