Javascript 这是跨域请求还是跨协议请求?

Javascript 这是跨域请求还是跨协议请求?,javascript,angular,rest,cors,same-origin-policy,Javascript,Angular,Rest,Cors,Same Origin Policy,我有一个错误需要调试。 它是从一个http GET in Angular2中发生的,看起来像这样: constructor(private http: Http) {} ... this.http.get('someApi.abc.com/stuff?params`) 失败时出现如下错误: XMLHttpRequest无法将“”加载到 “”已被CORS策略阻止:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 进入 我认为

我有一个错误需要调试。 它是从一个http GET in Angular2中发生的,看起来像这样:

constructor(private http: Http) {}

...

this.http.get('someApi.abc.com/stuff?params`)
失败时出现如下错误:

XMLHttpRequest无法将“”加载到 “”已被CORS策略阻止:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 进入

我认为有两个问题:我不理解的重定向(可能需要联系someApi所有者?)和CORS问题

我的理解是,域名是:
abc.com
协议是:
http

因此,不应该涉及CORS的胡说八道。我显然错了,但不明白为什么:(

同源策略基于需要精确匹配的域。
local.abc.com
someApi.abc.com
不完全匹配。因此
http://local.abc.com
http://someApi.abc.com
是两个完全不同的源代码。因此,如果在源代码处运行前端JavaScript代码<代码>http://local.abc.com并向
http://someApi.abc.com
,则这是一个跨源请求,因此涉及CORS;具体而言,如果
http://someApi.abc.com
站点不发送
访问s-Control-Allow-Origin
响应标题。

您必须在应用程序后端可用。我知道。我没有意识到需要匹配的
someApi
。那么它必须是跨源的,并且它在API上返回响应中的
访问控制允许Origin
标题。我需要对标题执行任何操作吗就CORS协议而言,您不必对前端代码中客户端的头执行任何操作。从客户端发送特殊CORS头的唯一情况是访问控制请求头和访问控制请求方法请求头,但这些头是通过浏览器发送的自动发送,仅适用于浏览器自行执行的CORS飞行前选项请求。源站请求标头也是CORS协议的一部分,&始终针对来自前端JS的跨源站请求发送,但这也是浏览器自动添加的请求标头