2013-12-17 46 views
2

所以我一直在試圖通過服務器代理連接我的JavaScript web應用程序到GitHub的API(隱藏client_secret),但我發現,雖然我可以讓HTTP請求(GET,POST等),我無法通過我的webapp完成它們。服務器位於以下網址:http://mydomain.com:3000,而我的webapp位於http://mydomain.com。當我試圖使用jQuery的$.ajaxPOST,我收到以下錯誤:什麼被認爲是一個跨域請求

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://mydomain.com' is therefore not allowed access. 

所以我的問題是,是否到不同的端口,但在同一個域名的請求被認爲是一個跨 - 原始請求

+1

甲跨來源請求是主機,協議,或端口之間的任何差異。 –

回答

4

是的,對同一個主機但在不同端口上的請求被認爲是一個跨源請求。

在「跨來源」術語的「原點」被定義爲模式,主機,和一個URL的端口。例如,在url https://mydomain.com:3000/foo/bar中,方案是「https」,主機是「mydomain.com」,端口是「3000」。

爲了使請求成爲同源請求,源(即計劃,主機和端口)必須匹配。所有其他請求被視爲交叉來源。維基百科有表示same-和跨域請求的實例的大表:http://en.wikipedia.org/wiki/Same-origin_policy#Origin_determination_rules

0

跨源請求是對不在您自己的服務器上的同一端口上的頁面的任何請求。

+0

如果它位於相同的服務器和端口但域名不同,該怎麼辦?子域呢? –

+0

據我所知,子域應該沒問題。相同的服務器和端口也應該沒問題,因爲它們對於同一事物只是不同的名稱 – scrblnrd3