当我的API位于主网站的子域中时,是否需要启用CORS?

JMK*_*JMK 7 rest http cross-domain cors

我有一个RESTful api坐在我的网站的子域,所以它设置如下:

api.blah.com - RESTful api
blah.com - Website
Run Code Online (Sandbox Code Playgroud)

当我尝试执行HTTP请求时,我收到以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '(index)' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

我认为,因为它在同一个域上,这应该工作,我需要启用CORS还是还有其他我需要做的事情?

API建立在ASP.Net Web API上,网站基于AngularJS.

谢谢

Sas*_*shi 23

起源是方案/主机/端口的组合。因此,如果您的来源是http://store.company.com/并且您尝试访问http://news.company.com/dir/page.html,则它将被视为跨来源。更多例子在这里 -

同源策略

  • 这是更好的答案,因为它实际上解释了原因。 (2认同)

inf*_*rno 10

是的,你必须启用它.您必须从服务器端向浏览器发送CORS允许标头.这是因为子域计为不同的原点.您可能必须允许HTTP方法,如PUT,DELETE,OPTIONS.至少我猜角度也发送了那种请求.您必须通过这些新方法处理预检请求(OPTIONS).