我知道您不允许进行跨域 Ajax 调用,但为什么我可以对 facebook(或 twitter 或其他)oauth API 进行跨域 ajax 调用?
这与以下内容有关系吗?
"Access-Control-Allow-Origin: *"
允许所有访问是一种不好的做法吗?有没有更好的方法只允许您授权的人?
谢谢!
最佳答案
Access-Control-Allow-Origin response header field是 Cross-Origin Resource Sharing 的一部分它允许在某些条件下使用 XHR 进行跨源请求,这些条件可以由请求发送到的服务器控制。
在这种特殊情况下,Access-Control-Allow-Origin: *
表示服务器允许来自任何来源的请求。这基本上意味着该资源是公开可用的并且不支持凭据。
但是,由于您希望将访问权限限制为仅授权用户,因此您不能使用 *
。相反,您需要返回 Origin
header 字段值(请参阅 section 6.1 )。如果客户端已经拥有凭据但尚未请求资源,您还需要支持 preflight requests协商允许客户端发送哪些信息。
关于ajax - 跨域AJAX调用和Access-Control-Allow-Origin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10457430/