处理为服务ajax调用和服务器到服务器调用的API的CORS

时间:2016-05-26 09:34:30

标签: ajax cors

我正在构建一个端点(比如说/v1/getdata)。此端点将提供从ajax和服务器到服务器的调用。由于此端点的起源不同于将使用它的网站(简称http://www.t.com),因此我需要为ajax调用实现CORS。我知道每当请求在其Access-Control-Allow-Origin: *标头中有http://www.t.com时,我必须向响应添加Origin标头,因此浏览器将接受来自跨源的ajax调用。

但服务器到服务器的呼叫不会发送Origin标头。对此最好的方法是什么?我应该手动将Origin标头添加到服务器的请求中吗?

1 个答案:

答案 0 :(得分:1)

如果您公开API,则只需将Access-Control-Allow-Origin: *添加到所有回复中。

如果您只将其提供给某些网站,那么您应该使用的逻辑是:

Is the Origin request header present?
    If not, don't add an Access-Control-Allow-Origin response header
Is the Origin one that is on your whitelist of acceptable sites?
    If not, don't add an Access-Control-Allow-Origin response header
    Otherwise, add an Access-Control-Allow-Origin response header 
               with a value that matches the Origin request header