Я использую Laravel 5.8 и Angular 8 . Я вызываю POST API и в контроллере API возвращаю ответ с Location на другой веб-сайт, но выдаю ошибку:
Блокирован перекрестный запрос: политика одного источника запрещает чтение удаленного ресурса на https://www.example.com. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).
мой контроллер
class InvoiceController extends Controller{
public $successStatus = 200;
public function addInvoice(Request $request){
$validator = Validator::make($request->all(),
[
'id'=>'required',
'title'=>'required',
'price'=>'required',
'price_state'=>'required',
]
);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()->first()], 400);
}
$input['id']= $request['id'];
$input['title']= $request['title'];
$input['price']= (int)$request['price'];
$input['price_state']= $request['price_state'];
$invoice = (new Invoice)->amount( $input['price']);
$invoice->detail(['course' =>$input['title']]);
return Payment::callbackUrl('http://localhost:4200/preInvoice/'.$input['id'].'/'.$input['title'])->purchase(
$invoice,
function($driver, $transactionId) {
// we can store $transactionId in database
}
)->pay();
}
}
Я использую CORS промежуточное ПО в Laravel
public function handle($request, Closure $next)
{
$headers = [
'Access-Control-Allow-Methods'=> 'HEAD,POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers'=> 'X-Requested-With, Content-Type, Accept, Origin, Authorization',
'Access-Control-Allow-Origin' => '*'
];
if($request->getMethod() === 'OPTIONS') {
// The client-side application can set only headers allowed in Access-Control-Allow-Headers
return \response('', 200, $headers);
}
$response = $next($request);
foreach($headers as $key => $value)
$response->header($key, $value);
return $response;
}
это мой http ответ