我想在一个emberJS应用程序中向一个工作服务器(通过谷歌POSTMAN检查)提出基本请求。但是,当我尝试它,我得到HTTP 404错误。然后我检查了错误,发现来自客户端的原始请求来自OPTION请求,而不是GET请求。另外,我已经设置两个头,Accept
和Content-Type
是application/json
和检查时,检查印刷这些标题:emberJS JSONAPI适配器发送OPTION而不是GET请求
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"
}
});
是有一些方法把这个OPTION关闭,还是有一些解决方法?我不相信烬是如此错误,因为这些应该是呃应该做的主要事情之一 - 发送请求。 任何帮助appreaciated。
你的评论表明你相信Ember是越野车吗?您是否熟悉跨域请求的工作方式? (假设你的客户端代码和'host'属性是不同的主机) –
你可能想了解这个主题,(顺便说一下,它与Ember无关,它是浏览器的工作方式):https://developer.mozilla .org/zh-CN/docs/Web/HTTP/Access_control_CORS –
昨天我太紧张了,因为这个问题,所以我认为烬是越野车。我根本不熟悉CORS。现在我将尝试让CORS在后端解决问题。谢谢:) – xpg94