Django:获取API重定向到错误的URL

wj8zmpe1  于 2023-02-17  发布在  Go
关注(0)|答案(3)|浏览(159)

我正在尝试使用javascript Fetch API将数据发送到我的django后端。我当前的工作URL是127.0.0.1:8000/store
我尝试使用fetch将数据发送到127.0.0.1:8000/recommend_product/,如下所示www.example.comurls.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')
        }

我的问题是获取API将我重定向到'127.0.0.1:8000/store/recommend_product/'而不是127.0.0.1:8000/recommend_product/。如何解决这个问题?

pb3skfrl

pb3skfrl1#

我猜这与Django处理请求的方式有关。
你的url只被定义为var url = '/recommend_product/',所以如果/store是你第一个定义的url路径,它可能会默认为'127.0.0.1:8000/store/recommend_product/'
编辑:要更正它,请使用更具体的网址
var url = 'http://127.0.0.1:8000/recommend_product/'

mkshixfv

mkshixfv2#

也有同样的问题。虽然我不认为这是最好的方法,但试试http://127.0.0.1:8000/recommend_product

esyap4oy

esyap4oy3#

我在我的项目中也遇到过类似的错误。你最好的选择可能是使用javascript,比如${window.location.host}/your_endpoint/。这将使它相当动态。

相关问题