Как передать относительные url в $.ajax в yii2?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Как передать относительные url в $.ajax в yii2?

Сообщение svil »

Если я нахожусь на главной странице и оттуда добавляю товар в корзину ajax запросом отправляю на сервер данные - то срабатывает такой вариант:

Код: Выделить всё

`$('.add-to-cart').on('click', function (e) {
    e.preventDefault();
    var id = $(this).data('id'),
        qty = $('#qty').val();
    $.ajax({
        url: './cart/add',
       // url: "'.\yii\helpers\Url::to(['/cart/add', 'id' => $product->id]).'",
       //  url: "'.Yii::$app->urlManager->createUrl(['cart/add').'",
        data: {id: id, qty: qty},
        type: 'GET',
        success: function(res){
            if(!res) alert('Ошибка!');
            showCart(res);
        },
        error: function(){
            alert('Error!');
        }
    });
});` 
При это url или url: './cart/add' или url: 'cart/add'. Когда я с другой страницы пытаюсь добавить товар в корзину, в частности со страницы товара, срабатывает url такой url: '../cart/add'. Как мне настроить единый url для ajax запроса с любой страницы сайта?
javascript yii
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Как передать относительные url в $.ajax в yii2?

Сообщение Dominus »

Так попробуйте:

Код: Выделить всё

$('.add-to-cart').on('click', function (e) {
    e.preventDefault(); 
    
    var id = $(this).data('id'),
        qty = $('#qty').val(),
        url = e.currentTarget.href; // Url берем из ссылки
        
    $.ajax({
        url: url,
        data: {id: id, qty: qty},
        type: 'GET',
        success: function(res){
            if(!res) alert('Ошибка!');
            showCart(res);
        },
        error: function(){
            alert('Error!');
        }
    });
});
Ссылка:

Код: Выделить всё

<?= Html::a('Добавить в корзину', ['cart/add'], ['class' => 'btn btn-default add-to-cart']) ?>
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Re: Как передать относительные url в $.ajax в yii2?

Сообщение svil »

Спасибо, сработало!!! Ссылку отдельно не прописывала. Просто поменяла на предложенный вариант так:

Код: Выделить всё

$('.add-to-cart').on('click', function (e) {
    e.preventDefault(); 
    
    var id = $(this).data('id'),
        qty = $('#qty').val(),
        url = e.currentTarget.href; // Линк берем из ссылки
        
    $.ajax({
        url: url,
        data: {id: id, qty: qty},
        type: 'GET',
        success: function(res){
            if(!res) alert('Ошибка!');
            showCart(res);
        },
        error: function(){
            alert('Error!');
        }
    });
});
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Как передать относительные url в $.ajax в yii2?

Сообщение andku83 »

просто не нужно было использовать точек вначале url
Ответить