我有一个使用http.post()的简单angular2脚本:
createOrder(order: Order) {
console.log('create');
const headers = new Headers();
headers.append('Access-Control-Allow-Origin', '*');
headers.append('Content-Type', 'application/json');
const options = new RequestOptions({headers: headers});
const body = JSON.stringify(order);
console.log(body);
this.http.post(`http://localhost:9000/api/orders`, body, options)
.map(res => res.json()).subscribe();
}
和我的服务器端代码来处理请求:
def create() = Action(parse.json) { request =>
def product: OrderResource = OrderService.addOrder(request)
Created("Order for " + product.email + " created.")
.withHeaders(ACCESS_CONTROL_ALLOW_ORIGIN -> "*", ACCESS_CONTROL_ALLOW_HEADERS -> "Origin, X-Requested-With, Content-Type, Accept")
}
当我发帖时,我收到404错误:
XMLHttpRequest cannot load http://localhost:9000/api/orders. Response for preflight has invalid HTTP status code 404
常规 请求网址:http://localhost:9000/api/orders 请求方法:选项 状态码:404未找到 远程地址:[:: 1]:9000 推荐人政策:no-referrer-when-downgrade
响应标头 内容长度:6953 内容类型:text / html的;字符集= utf-8的 日期:2017年6月19日星期一07:29:30 GMT
请求标题 接受: / 访问控制请求报头:访问控制允许来源,内容类型 访问控制请求-方法:POST 连接:保持活跃 主机:本地主机:9000
我不知道为什么我不能做一个简单的帖子?当我作为客户从邮递员那里做同样的事情一切都好,但是从Angular来看它不起作用。
为什么此请求是Options
方法,而不是Post
?