Laravel 4响应标头:根据原始域拒绝ajax请求

时间:2013-06-08 11:57:44

标签: header laravel httpresponse cors laravel-4

我正在尝试创建一个简单的方法来限制基于HTTP请求所源自的域的数据访问(基本上就是CORS)。

提供一些简要背景:(我正在使用最新的Laravel 4) - 在这个应用程序中,数据由客户在异地使用。我想让客户能够限制HTTP请求以基于源访问该数据。因此,只有来自其网站的请求才能通过API访问该数据。

即。为了论证:假设http://mycustomer.com上的脚本对http://myapp.com/api/customers_data进行Ajax调用---我想只允许来自http://mycustomer.com的请求,并拒绝所有其他请求。

我目前得到的相关代码:

    // i.e. 'http://mycustomer.com';
    $allow_domain = User::settings->domain;

    $headers = array(
       'Access-Control-Allow-Origin' => $allow_domain,
    );

    return Response::make($JSON_data, 200, $headers);

但这似乎并不能否认源自其他域的请求。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

解决:为了回答这个问题,经过几个小时的拔毛后,这是经典的“输出标题前的输出”问题“。我错误地记录了我的一个实用程序函数,它正在输出预标题。

另外,作为注释,如果有人有类似的问题:允许的域上没有后缀反斜杠。即“http://allow.com/”失败,但“http://allow.com”有效。