从源头阻止 COR
blocking CORs from origin
试图了解 COR
如果我的站点,http://example.com is trying to make a request to api.yelp.com, I get that Yelp would need to authorize the cross-origin call with Access-Control-Allow-Origin. However, my colleague is saying that http://example.com also needs a special config to allow the call api.yelp.com. If I read about CORs, I see nothing about the origin site, in this case http://example.com 阻止了 CORs 调用。默认情况下,浏览器会执行此操作,但可以允许它在未经源站特别许可的情况下进行 COR 调用。这是正确的,还是我遗漏了什么?
对于 Ajax 请求,all CORS configuration 只需在目标服务器上完成。
正如您所说,api.yelp.com
需要使用 *
或 http://example.com
的 Access-Control-Allow-Origin
header 进行响应。如果请求有任何 non-simple 组件(除 GET
或 POST
、and/or 任何 non-simple headers 以外的 HTTP 动词)则 api.yelp.com
还必须使用适当的 Access-Control-Allow-Methods
and/or Access-Control-Allow-Headers
响应 header 进行响应。但是,这些 header 也是 api.yelp.com
上的配置的一部分,而不是 example.com
.
上的配置的一部分
也许您的同事正在考虑 Content Security Policy (CSP),它允许页面 限制 目标来源 Ajax 请求、图像、媒体、脚本和样式。默认情况下允许所有来源,但是当您添加 CSP 时,您可以将允许的来源限制为特定的白名单。如果您的站点为 connect-src
指令使用 CSP 白名单,您可能需要将 api.yelp.com
添加到其 CSP 白名单。
简而言之,example.com
不需要允许对api.yelp.com
的Ajax调用,但它可以选择[=35] =]deny 这样的调用,通过 CSP 指令。 (因此,如果已经存在这样的拒绝,您可能需要放宽它。)
试图了解 COR
如果我的站点,http://example.com is trying to make a request to api.yelp.com, I get that Yelp would need to authorize the cross-origin call with Access-Control-Allow-Origin. However, my colleague is saying that http://example.com also needs a special config to allow the call api.yelp.com. If I read about CORs, I see nothing about the origin site, in this case http://example.com 阻止了 CORs 调用。默认情况下,浏览器会执行此操作,但可以允许它在未经源站特别许可的情况下进行 COR 调用。这是正确的,还是我遗漏了什么?
对于 Ajax 请求,all CORS configuration 只需在目标服务器上完成。
正如您所说,api.yelp.com
需要使用 *
或 http://example.com
的 Access-Control-Allow-Origin
header 进行响应。如果请求有任何 non-simple 组件(除 GET
或 POST
、and/or 任何 non-simple headers 以外的 HTTP 动词)则 api.yelp.com
还必须使用适当的 Access-Control-Allow-Methods
and/or Access-Control-Allow-Headers
响应 header 进行响应。但是,这些 header 也是 api.yelp.com
上的配置的一部分,而不是 example.com
.
也许您的同事正在考虑 Content Security Policy (CSP),它允许页面 限制 目标来源 Ajax 请求、图像、媒体、脚本和样式。默认情况下允许所有来源,但是当您添加 CSP 时,您可以将允许的来源限制为特定的白名单。如果您的站点为 connect-src
指令使用 CSP 白名单,您可能需要将 api.yelp.com
添加到其 CSP 白名单。
简而言之,example.com
不需要允许对api.yelp.com
的Ajax调用,但它可以选择[=35] =]deny 这样的调用,通过 CSP 指令。 (因此,如果已经存在这样的拒绝,您可能需要放宽它。)