2013-02-20 71 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应用程序后,现在可以按预期工作了!