Laravel App 通过 URL 获取 API 中的图片时遇到 403 Forbidden 错误 - 如何解决?

问题描述 投票:0回答:1

我在尝试通过 URL 从 Laravel 应用程序获取图像时面临挑战。我遇到的具体错误是 403 Forbidden 状态代码。以下是请求的详细信息:

请求网址:https://bpds.thedatech.com/public/upload/all/banner/202403030945WhatsApp-Image-2023-07-07-at-12.39.03-AM.jpeg 请求方式:GET 状态代码:403 禁止 推荐人政策:跨源时严格源

我已验证 URL 是否正确并且图像存在于指定位置。尽管如此,我仍然遇到 403 Forbidden 错误。任何人都可以深入了解为什么会发生此错误,并提出解决该错误的潜在解决方案吗?任何帮助将不胜感激。谢谢!

我正在我的 CORS 中间件中尝试此代码:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class CorsMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
         $response = $next($request);

        // Add CORS headers
        $response->header('Access-Control-Allow-Origin', 'https://datech2bpds.netlify.app');
        $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
        $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization');

        return $response;
    }
}


**This is my Controller CODE:**

  public function blogs_all_api()
    {
        $blogs = Blog::join('blog_categories','blog_categories.id','blogs.category_id')
                    ->select('blog_categories.name','blogs.*')
                    ->get();
    
        foreach($blogs as $blog) {
             $blog->banner = asset('/public/upload/all/banner/' . $blog->banner);
            // $blog->date = formatDate($blog->created_at);
            // Assuming $blog->created_at is a date string
            $dateString = $blog->created_at;
            
            // Convert to Carbon instance
            $carbonDate = \Carbon\Carbon::parse($dateString);
            $blog->date=$carbonDate;
        }
    
        $response =  response()->json([
            'code'=>'success',
            'blogs'=>$blogs
        ]);
        
       

// Set CORS headers to allow requests from 'https://digitize4life.com'
$response->header('Access-Control-Allow-Origin', 'https://datech2bpds.netlify.app')
         ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
         ->header('Access-Control-Allow-Headers', 'Content-Type, Authorization');


        return $response;
    }
php laravel api rest laravel-8
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.