如何为text/html
内容类型POST
POST
参数,而不将其作为对象发送?
在我的情况下,我需要发送额外的数据以外的形式从cookie读取。
使用body : {}
或body: JSON.Stringify({})
发布数据对象。我希望数据作为单独的值发布。
$(document).on('click', '#update', async () => {
try {
const response = await fetch("/getupdate",{
method:'POST',
headers:{
'Content-Type':'text/html; charset=utf-8'
},
body: JSON.stringify({
"country": getCookie("country"),
"city": getCookie("city").replace(/"/g, ""),
"action": 1,
"csrfmiddlewaretoken": $('input[name=csrfmiddlewaretoken]').val()
}),
});
} catch (error){
console.log(error)
}
});
字符串
得到一个对象而不是单个值-
{
"country": "US",
"city": "Miami",
"action": 1,
"csrfmiddlewaretoken": "iLoS4Bsgdyc6EhOtQKiiXrIqr9S1eojdhdyEeClA8qI5ei2WpfQQu1JrduLrbndndR"
}
型
期望个人价值观-
"country": "US",
"city": "Miami",
"action": 1,
"csrfmiddlewaretoken": "iLoS4Bsgdyc6EhOtQKiiXrIqr9S1eojdhdyEeClA8qI5ei2WpfQQu1JrduLrbndndR"
型
2条答案
按热度按时间sy5wg1nm1#
添加我的评论作为答案,因为你提到你想提交一个
form-data
。你已经构造了FormData,而不是JsonString字符串
wbgh16ku2#
如果你对以JSON字符串/对象的形式发送数据不感兴趣,可以有其他的选择。这里我有三个例子。发送为:
发送内容类型为
text/html
的数据没有意义,因为数据与HTML代码无关。我更倾向于使用第二种或第三种选择。
以text/plain格式发送(URI编码)
这就是我对你的问题的解释。你想把数据作为一个普通的字符串发送。现在,这有点混乱,有换行符和字符,如
"
,所以你需要encode the data as URI。在这种情况下,服务器没有机会解释数据/字符串,因此这个选项不是一个好主意。个字符
以application/x-www-form-urlencoded格式发送
这是使用普通HTML表单POST数据时的默认内容类型。如果没有需要发送的文件,这将是首选选项。服务器将能够解释数据,就像它是发送数据的HTML表单一样。
的字符串
以multipart/form-data格式发送
这是当您POST数据时使用的内容类型,包括HTML表单中的文件。服务器将能够解释数据,就像它是发送数据的HTML表单一样。