我正在运行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");
}
});
我该如何解决这个问题?数据是否为null因为我没有在Flask代码中使用正确的响应对象?
答案 0 :(得分:1)
您应该使用.fail。
$.post( "example.php", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function(error) {
alert( `error ${error}` );
})
.always(function() {
alert( "finished" );
});
答案 1 :(得分: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);
});