2013-02-20 26 views
1

進行測試時,在測試出來CORS能力的終點,我很好奇,如果有人可以解釋結果如下差異而使用curl:CORS原產地不一致的,捲曲

首先,我嘗試以下:

$ curl -i https://api.github.com -H "Origin: http://github.com" -X OPTIONS 

這導致了我對Access-Control-Allow-Origin標題等等的期望。

其次,我想這一點:

$ curl -i https://api.github.com -H "Origin: http://jamesdh.github.com" -X OPTIONS 

這就造成了一個500錯誤。唯一改變的是在初始請求中傳遞的Origin頭文件。

請原諒我的CORS無知,但是大多數服務器不只是反映Access-Control-Allow-Origin響應頭中的Origin路徑?爲什麼GitHub會與其中一個正確地工作,然後再炸燬另一個呢?

回答

1

顯然,對於CORS請求,必須先將域註冊爲具有GitHub的OAuth應用程序。從他們的文檔http://developer.github.com/v3/#cross-origin-resource-sharing我剛剛發現了以下內容:

接受任何註冊爲OAuth應用程序的域。這裏有一個例子...

如果他們強調一點,那肯定會很好!創建一個使用所需的GitHub頁面URL作爲域/回調URL的OAuth應用程序後,現在可以按預期工作了!