跨源请求已阻止 - Laravel
Cross-Origin Request Blocked - Laravel
我已尝试从 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
请帮我解决这个问题
您正在尝试从一个域访问 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) {
});
此回复是基于您似乎可以控制 serve-side 代码这一事实。
您是否已将 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");
});
也许您可以在自己发送的响应中设置此 headers,我不确定。如果那是可能的,并且您可能会在多条路线上使用这种东西,那么最好将其准备为过滤器。您可以在 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);
}
我已尝试从 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
请帮我解决这个问题
您正在尝试从一个域访问 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) {
});
此回复是基于您似乎可以控制 serve-side 代码这一事实。 您是否已将 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");
});
也许您可以在自己发送的响应中设置此 headers,我不确定。如果那是可能的,并且您可能会在多条路线上使用这种东西,那么最好将其准备为过滤器。您可以在 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);
}