emberJS JSONAPI 适配器发送 OPTION 而不是 GET 请求

emberJS JSONAPI adapter sends OPTION instead of GET request

我试图在 emberJS 应用程序中向工作服务器发出基本请求(通过 google POSTMAN 检查)。但是当我尝试它时,我收到 http 404 错误。然后我检查了错误,发现来自客户端的原始请求是 OPTION 请求而不是 GET 请求。此外,我将两个 header、AcceptContent-Type 设置为 application/json 并且在检查时,检查员打印了这些 headers:

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:GET
Connection:keep-alive
Host:frontend.com
Origin:http://localhost:4200
Referer:http://localhost:4200/restaurant
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36

这是适配器

//Application.js adapter:
import DS from 'ember-data';

export default DS.JSONAPIadapter.extend({
    host: 'http://server.com',
    namespace: 'v1',
    headers: {
      "Accept": "application/json",
      "Content-Type": "application/json"
    }
});

有没有办法关闭这个选项,或者有什么解决方法?我不相信 ember 有这么多错误,因为这些应该是 emberJS 应该做的主要事情之一 - 发送请求。 感谢任何帮助。

这是"request preflight"。在执行跨源请求时,浏览器首先通过发送 OPTION 请求来发送预检请求。如果OPTION请求响应成功,就会向服务器发送真正的请求。

"preflight" 在这种情况下失败:

  • 服务器未启用 CORS
  • 发生身份验证/授权问题
  • 未找到服务功能 (404)
  • 服务功能不接受header您将发送

您可以使用这些关键字进行搜索:preflight, cors