Php 错误:laravel/VueJS ajax请求中的CORS

Php 错误:laravel/VueJS ajax请求中的CORS,php,ajax,laravel,cors,vue.js,Php,Ajax,Laravel,Cors,Vue.js,在使用VueJS向我的Laravel应用程序发送AJAX请求时,我遇到了跨源问题。 我已经用Laravel 5.3编写了后端API。如果您正在对与页面所在域不同的域进行访问,则出于安全原因,您的浏览器会将其阻止,因为它通常允许在同一来源中进行请求。当您想要执行跨域请求时,您需要执行一些不同的操作。关于如何实现这一点的教程是 当您使用邮递员时,他们不受本政策的限制。引自: 常规网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但它们受到同源策略的限制。扩展没有那么有限。扩展可

在使用VueJS向我的Laravel应用程序发送AJAX请求时,我遇到了跨源问题。 我已经用Laravel 5.3编写了后端API。如果您正在对与页面所在域不同的域进行访问,则出于安全原因,您的浏览器会将其阻止,因为它通常允许在同一来源中进行请求。当您想要执行跨域请求时,您需要执行一些不同的操作。关于如何实现这一点的教程是

当您使用邮递员时,他们不受本政策的限制。引自:

常规网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但它们受到同源策略的限制。扩展没有那么有限。扩展可以与其源站之外的远程服务器进行通信,只要它首先请求跨源站权限

要解决此问题,您的外部API服务器必须通过设置以下标头来支持cors请求:

header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
这可以按照评论中的建议执行。

如果您正在对与页面所在域不同的域执行请求,则浏览器会将其阻止,因为出于安全原因,它通常允许来自同一来源的请求。当您想要执行跨域请求时,您需要执行一些不同的操作。关于如何实现这一点的教程是

当您使用邮递员时,他们不受本政策的限制。引自:

常规网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但它们受到同源策略的限制。扩展没有那么有限。扩展可以与其源站之外的远程服务器进行通信,只要它首先请求跨源站权限

要解决此问题,您的外部API服务器必须通过设置以下标头来支持cors请求:

header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');

这可以按照评论中的建议进行。

这是我使用的Cors中间件:

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        $headers = [
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS',
            'Access-Control-Allow-Credentials' => 'true',
            'Access-Control-Max-Age'           => '86400',
            'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With'
        ];

        if ($request->isMethod('OPTIONS')) {
            return response()->json('{"method":"OPTIONS"}', 200, $headers);
        }

        $response = $next($request);
        foreach($headers as $key => $value) {
            $response->header($key, $value);
        }

        return $response;
    }
}

这是我使用的Cors中间件:

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        $headers = [
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS',
            'Access-Control-Allow-Credentials' => 'true',
            'Access-Control-Max-Age'           => '86400',
            'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With'
        ];

        if ($request->isMethod('OPTIONS')) {
            return response()->json('{"method":"OPTIONS"}', 200, $headers);
        }

        $response = $next($request);
        foreach($headers as $key => $value) {
            $response->header($key, $value);
        }

        return $response;
    }
}

您需要在API中处理源请求。你们可以这样使用:你们应该在提问之前使用谷歌,或者至少在Stack的搜索之前使用谷歌。如果你不问很多很多人的问题,你至少可以得到两个答案。你需要在你的API中处理原始请求。你们可以这样使用:你们应该在提问之前使用谷歌,或者至少在Stack的搜索之前使用谷歌。你会得到至少两个答案,而不会问很多很多人一样的问题谢谢!我更新了这个中间件并与我的laravel 5.3一起使用谢谢!我更新了这个中间件,并与我的laravel 5.3一起使用