我有一个JSON/javascript对象,我想得到x-www-form-urlencoded
.
像$('#myform').serialize()
物体一样的东西.
以下对象:
{
firstName: "Jonas",
lastName: "Gauffin"
}
Run Code Online (Sandbox Code Playgroud)
将被编码为:
firstName=Jonas&lastName=Gauffin
(请注意特殊字符应正确编码)
我正在尝试从React / Redux / Django webapp删除jQuery,并用$.ajax
Fetch API 替换该方法。我或多或少地使我的所有GET请求都能正常工作,并且似乎能够实现POST请求,但似乎无法以将POST数据实际放入Django request.POST
对象的方式格式化请求。每次我点击/ sign_in视图时,该request.POST
对象都是空的。我整个应用程序的后端都是使用Django表单构建的(没有Django模板,只有React控制的组件),我真的不想不必重写所有视图以使用request.body
或request.data
。
这是我认为可能相关的所有代码,请告诉我是否还有更多有用的代码:
这是咖喱函数,用于构建完整的POST数据并附加CSRF令牌:
const setUpCsrfToken = () => {
const csrftoken = Cookies.get('csrftoken')
return function post (url, options) {
const defaults = {
'method': 'POST',
'credentials': 'include',
'headers': {
'X-CSRFToken': csrftoken,
'Content-Type': 'application/x-www-form-urlencoded'
}
}
const merged = merge(options, defaults)
return fetch(url, merged)
}
}
export const post = setUpCsrfToken()
Run Code Online (Sandbox Code Playgroud)
这是我在React应用程序中使用的API方法:
export const signIn = data => {
return post('/api/account/sign_in/', data)
} …
Run Code Online (Sandbox Code Playgroud)