所以我有我的后逻辑:
var data = new FormData();
this.fields.forEach(field => data.append(field.question, field.answer));
console.log(data);
this.http
.fetch('login', {
method: 'POST',
body: data
})
.then(response => response.json())
.then(loginResult => {
});
console.log
显示对象,其中包含正确的信息!
所以我对填充的数据感到满意。
请求有效负载如下:
------WebKitFormBoundaryM4BOxXFW0i3zM4SY
Content-Disposition: form-data; name="passcode"
mysecretpasscode
------WebKitFormBoundaryM4BOxXFW0i3zM4SY--
owin 后端不理解:
var form = await c.Request.ReadFormAsync();
c
是OwinContext
.form
的输出是一个条目,其中包含所有有效负载文本。
显然,它试图在我想发送multipart/form-data
application/x-www-form-urlencoded
我错过了在这里配置什么?
编辑 - 基于可能的重复项
我尝试使用该解决方案,但它没有解决我的问题。
你的问题和这个问题几乎一样 用aurelia-fetch-client发布'x-www-form-urlencoded'内容,所以我主要是在这里复制和粘贴......
尝试将对象作为查询字符串发送,而不是发送FormData
对象,并将content-type
设置为键入application/x-www-form-urlencoded
。喜欢这个:
//jQuery.param returns something like ?param=1¶m2=2 and so on
//params = a plain javascript object that contains the parameters to be sent
this.http.fetch(url, {
body: $.param(params),
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then(response => response.json())
.then(response => {
//your magic here
});
我知道这不是一个好的解决方案,但这是我迄今为止找到的最简单的方法。