emberJS JSONAPI 适配器发送 OPTION 而不是 GET 请求
emberJS JSONAPI adapter sends OPTION instead of GET request
我试图在 emberJS 应用程序中向工作服务器发出基本请求(通过 google POSTMAN 检查)。但是当我尝试它时,我收到 http 404 错误。然后我检查了错误,发现来自客户端的原始请求是 OPTION 请求而不是 GET 请求。此外,我将两个 header、Accept
和 Content-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
我试图在 emberJS 应用程序中向工作服务器发出基本请求(通过 google POSTMAN 检查)。但是当我尝试它时,我收到 http 404 错误。然后我检查了错误,发现来自客户端的原始请求是 OPTION 请求而不是 GET 请求。此外,我将两个 header、Accept
和 Content-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