【问题标题】:Laravel Access-Control-Allow-OriginLaravel 访问控制允许来源
【发布时间】:2016-03-31 04:07:45
【问题描述】:

我有一个 laravel 应用程序,我创建了各种 api,它们等待我的应用程序发布/获取。

我正在开发一个离子应用程序,它利用 Ngresource 并发送发布请求,但是在测试时我收到以下错误:

XMLHttpRequest 无法加载http://IPADDRESS/api/test 响应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:8100” 访问。

我已经尝试在我的 laravel 应用程序上将我的 api 路由包装在一个包含中间件 CORS 的中间件组中。我还在我的 Kernel.php 文件中注册了中间件。请参阅下面的 cors 中间件。

<?php namespace App\Http\Middleware;
use Closure;

use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Http\Response;

class CORS implements Middleware {

 /**
  * Handle an incoming request.
  *
  * @param \Illuminate\Http\Request $request
  * @param \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
  return $next($request)->header('Access-Control-Allow-Origin' , '*')
          ->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE')
          ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With');
 }
}

但这并没有什么不同,我得到了同样的错误。

【问题讨论】:

  • 尝试针对您的环回 ip 127.0.0.1 修改 www.mylarveltest.com 的主机文件并尝试使用 mylarveltest.com/api/test
  • 这与 SSH 有什么关系?
  • 抱歉 @AbhishekSingh 我的 laravel 网站已经托管我的 ionic 应用程序在本地托管
  • @Wolrab 本地托管的标志性应用程序由于跨源效应而无法向 Web 托管的应用程序发送请求。请构建应用程序并在手机上部署。它应该工作
  • @AbhishekSingh 即使我使用离子视图它仍然无法工作吗??

标签: angularjs ionic-framework laravel-5.1


【解决方案1】:

快速肮脏的解决方案是在您的浏览器中安装 cors 插件,它会起作用。

CORS plugin for chrome.

【讨论】:

    【解决方案2】:

    如果我理解正确,您正在向与您的页面所在的域不同的域执行 XMLHttpRequest。因此浏览器会阻止它,因为出于安全原因,它通常允许同一来源的请求。当您想要进行跨域请求时,您需要做一些不同的事情。有关如何实现这一点的教程是使用 CORS。

    【讨论】:

    • 禁用网络安全
    猜你喜欢
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 2016-12-09
    • 2020-08-16
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    相关资源
    最近更新 更多