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

标签 javascript ember.js ember-data json-api get-request

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

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 有如此多的 bug,因为这些应该是 emberJS 应该做的主要事情之一 - 发送请求。 感谢任何帮助。

最佳答案

这是“请求预检”。在执行跨源请求时,浏览器首先通过发送 OPTION 请求来发送预检请求。如果OPTION请求被成功响应,则真正的请求将被发送到服务器。

在这种情况下“预检”会失败:

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

您可以使用以下关键字进行搜索:preflight、cors

关于javascript - emberJS JSONAPI 适配器发送 OPTION 而不是 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36506296/

相关文章:

ember-data - 如何在 ember-data 1.13 中使用 jsonapi 分页

javascript - 如何在Xml子元素中选择和每个?

javascript - 加载后删除 <img> 标签的 css 类

javascript - setRecordDataFor "Illegal set of identifier"中的 EmberJS 数据断言

pagination - 使用 ember-data RESTAdapter 返回分页数据的正确模式?

ember.js - Ember : Promise (destroyRecord(). then()) 请求成功失败

javascript - 如何更改日期选择器内部的日期选择器设置?

javascript - firebase.storage() 不是开 Jest 测试用例中的函数

javascript - coffeescript 1.7 破坏了我的 ember.js 计算属性

javascript - 如何用Ember形成下表?