Angular2 + Play Framework - 无法使用http.post()方法

时间:2017-06-19 07:36:31

标签: angular http playframework request

我有一个使用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

0 个答案:

没有答案