Javascript 执行AJAX请求时出现问题
我正在构建一个Facebook messenger机器人。我需要展示一个网络视图。此webview执行一些支付处理,如果成功,我将调用Messenger SDK的函数关闭webview,然后执行Ajax调用以继续向用户发送消息。现在我有一个问题,webview直到ajax完成执行(即向用户发送消息)后才会关闭。如果我将Messenger close函数放在ajax调用之外,webview将关闭,但ajax不会执行。请说明如何关闭webview,然后继续执行ajax请求。这是我目前正在做的:Javascript 执行AJAX请求时出现问题,javascript,php,jquery,ajax,facebook-messenger-bot,Javascript,Php,Jquery,Ajax,Facebook Messenger Bot,我正在构建一个Facebook messenger机器人。我需要展示一个网络视图。此webview执行一些支付处理,如果成功,我将调用Messenger SDK的函数关闭webview,然后执行Ajax调用以继续向用户发送消息。现在我有一个问题,webview直到ajax完成执行(即向用户发送消息)后才会关闭。如果我将Messenger close函数放在ajax调用之外,webview将关闭,但ajax不会执行。请说明如何关闭webview,然后继续执行ajax请求。这是我目前正在做的: $.
$.ajax({
type: 'POST',
dataType: 'JSON',
url: '/api/payment/'+userId+'/'+payRef,
data: 'userId='+userId,
success: function (data) {
console.log(data);
MessengerExtensions.requestCloseBrowser();
}
})
我不知道这是否能解决您的问题,但您可以尝试以下方法:
$.ajax({
type: 'POST',
dataType: 'JSON',
url: '/api/payment/'+userId+'/'+payRef,
data: 'userId='+userId,
beforeSend: function() {
MessengerExtensions.requestCloseBrowser();
},
success: function (data) {
console.log(data);
}})
理论上,窗口将在请求初始化之前关闭。我不知道我是否理解正确,但是您是否尝试过ajax中的
发送前和完成功能
$.ajax({
type: 'POST',
dataType: 'JSON',
url: '/api/payment/'+userId+'/'+payRef,
data: 'userId='+userId,
beforeSend: function(jqXHR, settings) {
// Action before send the request to the url
},
success: function (data) {
// Action if the process in the url url don't throw any errors
},
complete: function(jqXHR, textStatus) {
// Action when the request is returned to application
},
error: function(jqXHR, textStatus, errorThrown) {
// I would recommend you always use the error function.
}
})
在发送之前,您是否看过方法这不起作用。webview关闭,但ajax请求未执行。这不起作用。webview关闭,但ajax请求未被执行如何仅在调用完整函数时关闭模式?ajax将运行url:'/api/payment/'+userId+'/'+payRef,如果没有发生错误,将调用完整的函数,然后关闭模式。