为什么我在使用 superagent 发送 POST 请求时在 django 端收到 GET 请求
Why I am getting a GET request on the django side while sending a POST request with superagent
我正在使用 superagent.js 向服务器应用程序发送 POST 请求。请求被发送到 django
视图。但是我在视图端收到 GET 请求。
这是我的代码,我试图用 superagent
:
发送请求
request.post('/nameofview')
.set('Content-type', 'application/x-www-form-urlencoded')
.set('X-CSRFToken', csrf)
.send({name: 'name'})
.end(callback)
这些是来自 django
开发服务器的日志:
[30/Mar/2016 12:27:28] "POST /nameofview HTTP/1.1" 302 0
[30/Mar/2016 12:27:28] "GET /ru/nameofview HTTP/1.1" 404(<--Raising not found from within the view) 1696
因此,django
项目 url 调度程序正在接收 post 请求,然后将其作为获取请求重定向到应用程序视图。 我对 url 匹配没有任何问题。执行进入查看代码,但它是一个获取请求而不是post,这就是为什么我无法获取我发送的post数据的原因。
这是我的查看代码:
def nameofview(request):
if 'name' in request.POST:
# make some staff
return JsonResponse({'result': result})
else:
raise Http404()
从此post, I figured out that I have to attach a csrftoken to my post request, and of course I did this as it is described here没有任何成功。
所以,我的问题是,为什么要这样做,我怎样才能让它不触及我的 post 请求?
P.S。它可以毫无问题地使用 get 请求。
Mounir 似乎走在了正确的轨道上。但是尾随 /
似乎不是问题所在。相反,Django 在请求的 URL 前面添加了一个 /ru
。 ru
可能是您在 url 中编码的语言的描述符吗?如果是这样,请尝试调用 request.post('/ru/nameofview/')
.
另一方面,superagent 似乎使用 GET
请求而不是 POST
来调用重定向,因此 Mounir 提出的 allow_redirects=True
函数也可以解决问题,不过我不熟悉那个图书馆。
我正在使用 superagent.js 向服务器应用程序发送 POST 请求。请求被发送到 django
视图。但是我在视图端收到 GET 请求。
这是我的代码,我试图用 superagent
:
request.post('/nameofview')
.set('Content-type', 'application/x-www-form-urlencoded')
.set('X-CSRFToken', csrf)
.send({name: 'name'})
.end(callback)
这些是来自 django
开发服务器的日志:
[30/Mar/2016 12:27:28] "POST /nameofview HTTP/1.1" 302 0
[30/Mar/2016 12:27:28] "GET /ru/nameofview HTTP/1.1" 404(<--Raising not found from within the view) 1696
因此,django
项目 url 调度程序正在接收 post 请求,然后将其作为获取请求重定向到应用程序视图。 我对 url 匹配没有任何问题。执行进入查看代码,但它是一个获取请求而不是post,这就是为什么我无法获取我发送的post数据的原因。
这是我的查看代码:
def nameofview(request):
if 'name' in request.POST:
# make some staff
return JsonResponse({'result': result})
else:
raise Http404()
从此post, I figured out that I have to attach a csrftoken to my post request, and of course I did this as it is described here没有任何成功。
所以,我的问题是,为什么要这样做,我怎样才能让它不触及我的 post 请求?
P.S。它可以毫无问题地使用 get 请求。
Mounir 似乎走在了正确的轨道上。但是尾随 /
似乎不是问题所在。相反,Django 在请求的 URL 前面添加了一个 /ru
。 ru
可能是您在 url 中编码的语言的描述符吗?如果是这样,请尝试调用 request.post('/ru/nameofview/')
.
另一方面,superagent 似乎使用 GET
请求而不是 POST
来调用重定向,因此 Mounir 提出的 allow_redirects=True
函数也可以解决问题,不过我不熟悉那个图书馆。