【发布时间】:2017-11-11 11:42:14
【问题描述】:
这是我的代码:
const dummydata = {
param1: 72766,
param2: 'ELS'
}
var foo = JSON.stringify(dummydata)
let headers = new Headers();
headers.append('content-type', 'application/json');
this.http.post(url, foo, { headers: headers }).map(res => res.json()).subscribe(
() => { alert('Success'); }
);
由于某种原因,form-datain Request Payload 中没有数据进入服务器,并且类型正在转换为 OPTIONS 而不是 POST
另一方面,如果我删除headers,那么form-data 会继续,但会出现另一个错误:
415 Unsupported Media Type
更新:JQuery Ajax 正在工作
UPDATE2:已经试过了:
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
【问题讨论】:
-
当你发出一个 HTTP 请求时,Angular 总是会做一个 OPTIONS 来查看它是否可以到达端点。如果您的选项有误,那么您的 POST 将不起作用。在这里,这是一个服务器问题,不接受媒体类型。因此,要么更改数据,要么更改服务器处理数据的方式。
-
@trichetriche 我尝试以不同的方式更改数据。今天几乎一整天都在做这件事。到目前为止没有运气。问题是如果我尝试 jQuery Ajax,它可以工作
-
@trichetriche 不正确,OPTIONS 请求是由浏览器而不是 Angular 发出的。它们通常是在用户执行跨域请求时生成的,请查看此以获取更多信息:stackoverflow.com/questions/27915191/…
-
我的错误,但想法就在那里。感谢您的提醒