Javascript 执行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请求。这是我目前正在做的: $.

我正在构建一个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,如果没有发生错误,将调用完整的函数,然后关闭模式。