【问题标题】:Cross-Origin Request Blocked - Laravel跨域请求被阻止 - Laravel
【发布时间】:2015-07-13 19:32:39
【问题描述】:

我尝试从 ionic(angularjs) 应用程序访问(获取请求)我的 laravel api。 但它不断收到以下错误。

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://128.xxx.xxx.xx/mobi/check/?username=achchu&apikey=1N7GyYRfq8bQnrFCCGgL

请帮我解决这个问题

【问题讨论】:

  • 问题显示完全缺乏任何研究工作。此特定错误中的主题不难在网络上搜索。您不应该使用 SO 作为您的第一行调试工具,并且应该首先在自己身上付出一些努力来解决您的问题并至少了解它们的含义....尝试 google ...错误术语会带来很多结果

标签: angularjs laravel-4 ionic-framework


【解决方案1】:

此响应是基于您似乎可以控制服务端代码的事实。 您是否在响应中添加了 CORS 支持?如果你还没有这样做,它可能是这样的。

您可以这样添加处理程序:

Route::head("/<path to resource>", function () {
    $r = Response::make("hello");
    //Access-Control-Allow-Origin: http://api.bob.com
    // Access-Control-Allow-Credentials: true
    $r->header("Access-Control-Allow-Origin", "<*|client request domain>")
    ->("Access-Control-Allow-Credentials", "true")
    ->("Access-Control-Request-Method", "GET");

});

也许您可以在自己发送的响应中设置此标头,我不确定。如果这是可能的,并且您可能会在多条路线上使用这种东西,那么最好将其准备为过滤器。您可以在http://www.html5rocks.com/en/tutorials/cors/ 阅读更多关于 CORS 的信息。

如果您要发送的是 json 数据,请考虑提供您的响应以支持 jsonp。你可以这样做:

   $normalData = Model::all();

   // if the client made a jsonp style request
   if (Input::has("callback")) {
        $data = "<script>" . Input::get("callback") . "(" . json_encode($normalData) . ")";
       return Response::make($data)->header("Content-Type", "appplication/javascript");
   }else {
       //if not then return normally
       return Response::json($normalData);
   }

【讨论】:

    【解决方案2】:

    您正在尝试从一个域访问 api 到另一个域。 有很多方法可以解决这个问题,但是既然是get请求,就用**jsonp*吧。

    试试这样的

       var url = ' http://128.xxx.xxx.xx/mobi/check/?username=achchu&apikey=1N7GyYRfq8bQnrFCCGgL&callback=JSON_CALLBACK';
                    $http.jsonp(url)
                    .success(function(data) {
    
                    });
    

    【讨论】:

    • 不能随便请求jsonp,除非api服务jsonp
    • 是吗?不确定伙计。我使用 jsonp 回调,它在所有情况下都有效。无论如何我都会调查它。谢谢你的反馈。
    猜你喜欢
    • 2019-04-17
    • 2021-06-26
    • 2014-10-13
    • 2019-11-04
    • 2017-02-06
    • 2017-01-04
    • 2014-12-27
    相关资源
    最近更新 更多