Laravel 4 响应标头:拒绝基于源域的 ajax 请求
Posted
技术标签:
【中文标题】Laravel 4 响应标头:拒绝基于源域的 ajax 请求【英文标题】:Laravel 4 Response Headers: deny ajax request based on origin domain 【发布时间】:2013-06-04 15:47:13 【问题描述】:我正在尝试创建一种简单的方法来根据 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】:已解决:为了回答这个问题,经过数小时的努力,这是经典的“发送标头前的输出”问题。我在记录我的一个实用程序函数时出错,它正在输出前标头。
另外,请注意,如果有人遇到类似问题:允许的域上没有后缀反斜杠。即“http://allow.com/”失败,但“http://allow.com”有效。
【讨论】:
以上是关于Laravel 4 响应标头:拒绝基于源域的 ajax 请求的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 Angular 4 上向 laravel api 发送带有标头的 http 请求