Пользовательский компонент - ручка 303 Перенаправление на AJAX

Привет, Я разрабатываю пользовательский компонент в Joomla. После успешного сохранения, мои контроллеры задают 303 переадресацию с помощью специального сообщения. Но с интерфейсом AJAX в середине моя страница, похоже, не перенаправляется на эту страницу. Он остается на одной странице.

AJAX Request Network Console

Как мне обрабатывать код статуса 303 и принудительно перенаправить мою страницу на страницу, заданную контроллером?

Вот мой код js:

$('#submit').click(function(e){
    $('.requestForm').ajaxSubmit({
        url: 'index.php?option=com_helpdesk&task=request.save',
        type: 'POST',
        beforeSubmit: function () {
            $.blockUI({css: {
                    border: 'none',
                    padding: '15px',
                    backgroundColor: '#000',
                    '-webkit-border-radius': '10px',
                    '-moz-border-radius': '10px',
                    opacity: .5,
                    color: '#fff'
                }});
        },
        success: function(result, status, xhr) {
            var response = $.parseJSON(result);
            if (!response['success'])
            {
                var html = '<div class="alert alert-warning alert-dismissible" role="alert">';
                html += '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>';
                html += '<p><strong>Warning!</strong></p>';
                $.each(response['messages']['error'], function (index, value) {
                    html += '<p>' + value + '</p>';
                });
                html += '</div>';
                $('#system-message-container').html(html);
            }
            else
            {
                //Here my page get's 303 redirect which needs to be handle.
            }
        },
        statusCode: {
            // I tried this but this is not working
            303: function() {
                $.unblockUI();
                alert('hurray');
            }
        },
        complete: function () {
            $.unblockUI();
        }
    });
    e.preventDefault();
});
1 голос | спросил Sahil Purav 6 Maypm15 2015, 12:02:05

1 ответ


1

В Joomla регулярные контроллеры сохраняют перенаправление. На стороне Ajax это прекрасно.

Вместо того, чтобы избегать перенаправления, просто напишите конкретное сохранение saveAync в своем контроллере без перенаправления.

Кроме того, некоторые библиотеки, такие как Backbone.JS или AngularJS, представляют формы по-другому (php input raw json), чем обычные формы Joomla, и их необходимо обрабатывать соответственно в контроллере.

ответил Anibal 6 Maypm15 2015, 12:45:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132