如何对角度应用程序进行CORS HTTP请求

时间:2018-06-06 14:36:22

标签: javascript angular http request cors

我在不同的域上有一个带有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请求吗?

1 个答案:

答案 0 :(得分:2)

您无法向客户提出CORS请求。客户端发出请求。服务器做出响应。

如果在请求静态文件时遇到与CORS相关的错误,则需要配置服务器以在响应中放置相应的标头。

由于PHP没有处理响应,因此您的中间件无法运行。因此,您需要找到另一种方法。

有很多关于如何配置各种服务器来设置HTTP标头的文档(以及特定于CORS的大量标题),因此请确定您正在使用哪个HTTP服务器并查找如何操作。