在测试端点的CORS功能时,我很好奇是否有人可以在使用curl时解释结果的以下差异:
首先,我尝试了以下内容:
$ 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可以正常使用一个,然后另一个呢?
答案 0 :(得分:1)
显然,对于CORS请求,必须首先使用GitHub将域注册为OAuth应用程序。从他们http://developer.github.com/v3/#cross-origin-resource-sharing的文档中我发现了以下内容:
接受任何注册为OAuth应用程序的域。这是一个样本......
如果他们强调一点,那肯定会很好!创建使用所需GitHub页面URL作为域/回调URL的OAuth应用程序后,现在可以按预期工作了!