所以我一直试图通过服务器代理将我的javascript webapp连接到github的API(隐藏client_secret
),但我注意到虽然我可以发出HTTP请求(GET,POST等),但我我无法通过我的webapp执行这些操作。当我的webapp位于http://mydomain.com:3000
时,服务器位于以下网址:http://mydomain.com
。当我尝试使用JQuery的$.ajax
来执行POST
时,我收到以下错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://mydomain.com' is therefore not allowed access.
所以我的问题是对不同端口但在同一域名中的请求是否被视为跨源请求
答案 0 :(得分:7)
是的,对同一主机但在不同端口上的请求被视为跨源请求。
术语“交叉起源”中的“起源”被定义为URL的方案,主机和端口。例如,在网址https://mydomain.com:3000/foo/bar中,方案为“https”,主机为“mydomain.com”,端口为“3000”。
为了使请求成为同源请求,源(也称为方案,主机和端口)必须匹配。所有其他请求都被视为跨域请求。维基百科有一个很棒的表格,显示了相同和跨源请求的示例:http://en.wikipedia.org/wiki/Same-origin_policy#Origin_determination_rules
答案 1 :(得分:0)
跨域请求是对同一端口上不在您自己的服务器上的页面的任何请求。