目前,我正试图向我拥有的服务器发送一个post请求,该服务器配置为只接受JSON数据。
不幸的是,当我通过浏览器的developer控制台检查post请求时,它发送的数据没有编码为JSON,而是作为编码的url发送,因此响应类型为415,这是由于预期类型和提供的数据之间的差异。
表格:
<form action='http://myhost.elasticbeanstalk.com/API/Beta/Register' method = 'post' enctype='application/json'>
Email: *<br>
<input type='text' name='Email' style='width: 500px;' value='{"Email":"test@gmail.com"}'><br>
<br>
(Fields denoted with * are mandatory)
<br>
<input type='submit' value='Apply' style='float: right;'>
</form>
正如您所看到的,理论上我应该发送一个内容类型为json的请求,但是如果您检查发送的请求,您会发现内容类型仍然是一个编码的url,但是标记"enctype='application/json'“应该修复这个请求,除非我弄错了。
(印古尔像往常一样,目前已经关闭,所以我会在可能的情况下将这个图片改为一个更永久的链接)
https://puu.sh/unXtf/2610742d2f.png
我是不是遗漏了什么?
发布于 2017-02-28 18:07:40
浏览器本机不支持JSON作为带有HTML的媒体类型。使用XMLHttpRequest/Ajax以JSON形式提交表单。使用jQuery的虚拟示例:
$.ajax({
url: 'http://yoururl',
type: 'POST',
data: yourFormDataSearilized
contentType: 'application/json', // this is what you want
success: function() {
// check
}
});
https://stackoverflow.com/questions/42515656
复制相似问题