Laravel 5.6 DELETE和PUT 403禁止访问

时间:2018-06-13 11:25:57

标签: php laravel cors laravel-5.6

Laravel版本:5.6

PHP版本:7.1

我完成了我的项目并在本地进行了测试。但是当我将它上传到共享主机网站时,我收到两个错误(我不确定它们是否是两个单独的错误):

  

删除http://SomeAddress/patients/440627036 403(禁止)

     

无法加载http://SomeAddress/patients/440627036:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://SomeAddress”访问。响应的HTTP状态代码为403。

我认为我修正了CORS问题。我只收到 PUT DELETE 的CORS错误(我不知道为什么POST和GET正在运行!)。我添加了所需的标题,这个错误就消失了。这些是我添加的标题:

return $next($request)
        ->header('Access-Control-Allow-Origin', '*')
        ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS')
        ->header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With')
        ->header('Access-Control-Allow-Credentials', 'true')
        ->header('Access-Control-Max-Age', '10000');

但是现在我又收到了另一个错误(只有 PUT DELETE ) - (它与Laravel或我的共享主机网站或我的后端代码有关吗?) : My new error

  

禁止

     

您无权访问此服务器上的/ patients / 440627035。

我的CORS问题是否已完全解决?我该如何解决这些错误?

前端(我使用AngularJS $资源发送我的HTTP请求):

this.patientRes = function () {
        return $resource(baseURL + 'patients/:id', {id: "@id"}, {
            get: {
                method: 'GET',
                isArray: true,
                headers: {'Content-Type': 'application/json'}
            },
            update: {
                method: 'PUT',
                headers: {'Content-Type': 'application/json'}
            },
            delete: {
                method: 'DELETE',
                headers: {'Content-Type': 'application/json'}
            }
        })
    };

更新

我的文件结构是这样的:

public_html / public /和我的文件在这里

我将其更改为:

public_html /我的文件现在在这里

现在我收到此错误: enter image description here

1 个答案:

答案 0 :(得分:0)

使用此套餐: CORS Middleware for Laravel 5

在上面的Link给出安装步骤中。