के लिए विफल रहता है मैं थोड़ी देर के लिए इस समस्या को हल करने का प्रयास कर रहा हूं, लेकिन इसे क्रैक करने में असमर्थ हूं।लैरवेल सीओआरएस मिडलवेयर पोस्ट और संसाधन अनुरोध
मेरे पास लैरवेल बैकएंड और कोणीय अग्रभाग है। ये अलग-अलग डोमेन पर हैं क्योंकि फ्रंटेंड को वेब और मोबाइल कॉर्डोवा ऐप होना चाहिए।
भी CORS मिडलवेयर, पोस्ट और संसाधन अनुरोध जोड़ने के बाद लोड करने के लिए असफल हो और मैं कंसोल में एक
No 'Access-Control-Allow-Origin' header is present on the requested resource
त्रुटि मिलती है।
निम्नलिखित प्राप्त अनुरोध ठीक काम करता है: -
Route::get('example', ['middleware' => 'cors', function(){
return Response::json(array('name' => 'Steve Jobs 1', 'company' => 'Apple'));
}]);
लेकिन निम्नलिखित लोगों असफल -
Route::group(['middleware' => 'cors'], function() {
Route::group(['prefix' => 'api'], function()
{
Route::resources('authenticate', 'AuthenticateController', ['only' => ['index']]);
Route::post('authenticate', '[email protected]');
});
});
मैं https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps अनुसरण कर रही हूं।
मेरे CORS.php
class CORS
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
header("Access-Control-Allow-Origin: *");
// ALLOW OPTIONS METHOD
$headers = [
'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin'
];
if($request->getMethod() == "OPTIONS") {
// The client-side application can set only headers allowed in Access-Control-Allow-Headers
return Response::make('OK', 200, $headers);
}
$response = $next($request);
foreach($headers as $key => $value)
$response->header($key, $value);
return $response;
return $next($request);
}
}
kernal.php
class Kernel extends HttpKernel
{
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
/*\App\Http\Middleware\VerifyCsrfToken::class,*/
];
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class,
'cors' => 'App\Http\Middleware\CORS',
];
}
क्या आप अपना अनुरोध लौटाते हुए HTTP प्रतिक्रिया कोड पोस्ट कर सकते हैं? मुझे हाल ही में एक ही समस्या हो रही थी और मेरे जवाब 500 के कोड, एक आंतरिक सर्वर त्रुटि लौट रहे थे। यह पता चला कि मेरे हेडर के साथ कुछ लेना देना नहीं था, लेकिन तथ्य यह है कि मैं सीएसआरएफ सही तरीके से नहीं कर रहा था। सीएसआरएफ को अक्षम करने से यह काम करता है। शायद इसे आज़माएं और देखें कि क्या यह वास्तव में एक कॉरस समस्या है या मेरे मामले में कुछ और है? –
ठीक है, मैं देखता हूं कि आप सीएसआरएफ को अक्षम करते हैं, इसलिए ऐसा नहीं है। फिर भी, HTTP प्रतिक्रिया कोड जानने से कुछ अंतर्दृष्टि मिल सकती है। –