如何防止错误:“窗口已离开”

时间:2019-03-15 11:14:38

标签: javascript jquery json

我不断收到以下错误Error: "Window navigated away",但我不知道如何在发生此错误时阻止该错误的发生,这也使我无法离开正在打开的当前网页。我对Jquery和Javascript还是很陌生,所以在如何阻止这种情况发生方面我需要大量帮助。

这是我的代码

if($('#button').length){
    paypal.Buttons({
        env: '<?= PAYPAL_ENVIRONMENT ?>',
        style:{
            height: 100,
        },
        createOrder: function() {
            let formData = new FormData();
            formData.append('return_url',  '<?= $baseUrl.$URL["redirectUrls"]["returnUrl"]?>' + '?commit=false');
            formData.append('cancel_url', '<?= $baseUrl.$URL["redirectUrls"]["cancelUrl"]?>');

            return fetch('<?= $rootPath.$URL['services']['orderCreate']?>',
                {
                    method: 'POST',
                    body: formData
                }
            ).then(function(response) {
                return response.json();
            }).then(function(resJson) {
                var txt = resJson.data.id;
                $.post('createid.php', {
                    order_id: txt
                });
                return resJson.data.id;
            });
        },
        onApprove: function(data, actions) {
            return fetch(
                '<?= $rootPath.$URL['services']['orderGet'] ?>',
                {
                    method: 'GET'
                }
            ).then(function(res) {
                return res.json();
            }).then(function(res) {
                $('.nonce').val(res.data.id);
            });

        },
        onCancel: function(data) {
            $('#c').html('<a id="anchor" name="anchor"><p>Cancelled  order.</p></a>');
            location.href = '#cancelled';
        },
        onError: function(err) {            
            $('#e').html('<a id="anchor" name="anchor"><p>Error.</p></a>');
            location.href = '#error';
        }
    }).render('#button');
}

1 个答案:

答案 0 :(得分:0)

我收到了相同的错误消息,并且仅在Microsoft Edge和IE中出现,在我的情况下,这是由于以下Java脚本代码/ jquery / php代码中的多余空格所致-

我更改了(空格在“基本”一词前)

location.href = "<?= base_url(); ?>Property/Transaction/error";

收件人

location.href = "<?=base_url(); ?>Property/Transaction/error";

如果再次回滚该更改,则会出现此问题,并且实施此小更改即可解决该问题。所以我想分享。您还应该检查url中是否有任何特殊字符,这也可能导致这种重定向错误。

我怎么想是由于另一个关于stackoverflow的问题- window.location.href not working on IE