Aurelia使用同构获取发布表单数据给出了奇怪的输出



所以我有我的后逻辑:

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();

cOwinContext.form的输出是一个条目,其中包含所有有效负载文本。

显然,它试图在我想发送multipart/form-dataapplication/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&param2=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
});

我知道这不是一个好的解决方案,但这是我迄今为止找到的最简单的方法。

相关内容

  • 没有找到相关文章

最新更新