Django: Fetch API перенаправляет на неправильный URL

#javascript #django #fetch

#javascript #django #извлечение

Вопрос:

Я пытаюсь отправить данные в мой серверный сервер django, используя javascript Fetch API. Мой текущий рабочий URL-адрес 127.0.0.1:8000/store

И я пытаюсь отправить данные с 127.0.0.1:8000/recommend_product/ помощью выборки следующим образом urls.py

 path('recommend_product/',product_utils.recommend_product,name = "recommend_product"),
 
  var url = '/recommend_product/'
            fetch(url, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRFToken': csrftoken,
                },
                body: JSON.stringify({ 'productId': productId })
            })
                .then((response) => {
                    return response.json()
                })

                .then((data) => {
                    console.log('data:', data)
                    location.reload()
                })
        } else {
            alert('Please Login to recommend products')
        }
 

Моя проблема в том, что Fetch API перенаправляет меня на '127.0.0.1:8000/store/recommend_product/' вместо 127.0.0.1:8000/recommend_product/ .
Как это исправить?

Ответ №1:

Я бы предположил, что это как-то связано с тем, как Django обрабатывает запросы.

Ваш URL определяется только как var url = '/recommend_product/' , поэтому '127.0.0.1:8000/store/recommend_product/' по умолчанию он может быть равен if /store — вашему первому определенному URL-адресу.

Редактировать: чтобы исправить это, будьте более конкретны в своем URL

var url = 'http://127.0.0.1:8000/recommend_product/'

Комментарии:

1. Полностью выпишите URL-адрес var url = ‘127.0.0.1:8000/recommend_product/

2. я пробовал это раньше, и я получаю NotFound /store/127.0.0.1:8000/recommend_product/

Ответ №2:

Была та же проблема. Хотя я не думаю, что это лучший способ, попробуйте http://127.0.0.1:8000/recommend_product