我在不同的域上有一个带有PHP API的Angular 5前端应用程序。大多数情况下,前端应用程序正在从API请求数据。为了实现这一点,我不得不在PHP(Laravel)项目中添加一个CORS Middleware类:
namespace App\Http\Middleware;
use Closure;
class Cors
{
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Headers', 'Authorization, Origin, X-Requested-With, Content-Type, Accept')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
}
}
但是,在少数情况下,我需要通过PHP生成一些HTML,并且我想从Angular应用程序中请求一些资源(例如图像和字体)。但是当我尝试这个时,我收到一个CORS错误。你能告诉我如何向我的Angular 5应用启用CORS请求吗?
答案 0 :(得分:2)
您无法向客户提出CORS请求。客户端发出请求。服务器做出响应。
如果在请求静态文件时遇到与CORS相关的错误,则需要配置服务器以在响应中放置相应的标头。
由于PHP没有处理响应,因此您的中间件无法运行。因此,您需要找到另一种方法。
有很多关于如何配置各种服务器来设置HTTP标头的文档(以及特定于CORS的大量标题),因此请确定您正在使用哪个HTTP服务器并查找如何操作。