使用curl进行测试时,HTTP OPTIONS请求的CORS Origin不一致

时间:2013-02-20 04:55:57

标签: curl cross-domain cors

在测试端点的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可以正常使用一个,然后另一个呢?

1 个答案:

答案 0 :(得分:1)

显然,对于CORS请求,必须首先使用GitHub将域注册为OAuth应用程序。从他们http://developer.github.com/v3/#cross-origin-resource-sharing的文档中我发现了以下内容:

  

接受任何注册为OAuth应用程序的域。这是一个样本......

如果他们强调一点,那肯定会很好!创建使用所需GitHub页面URL作为域/回调URL的OAuth应用程序后,现在可以按预期工作了!