2016-01-03 2 views
10

Я боролся с загрузкой изображения на сервер. Я использую ngFileUpload на переднем конце. Но я всегда получаюПерекрестная Домен Загрузка изображения Угловая + laravel

«Ответ на предполетной запроса не проходит проверку контроля доступа: Нет„Access-Control-Allow-Origin“заголовок присутствует на запрошенный ресурс»

Угловая Код для файла Загрузить:

var uploadFile = function (file) { 
     if (file) { 

      if (!file.$error) { 
       Upload.upload({ 
        url: baseUrl+'upload', 
        file: file 


       }).progress(function (evt) { 
        var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
        //console.log(evt.total); 
       }).success(function (data, status, headers, config) { 
        $timeout(function() { 

        console.log(data); 
        console.log(status); 
         if(status==200) 
         { 

          logo_path = data.logo_path; 

         } 

        }); 
       }); 
      } 

     } 
    }; 

На Laravel я настроен CORS так:

public function handle($request, Closure $next) 
{ 
    header("Access-Control-Allow-Origin: http://localhost:8001/"); 

    // 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; 
} 

запрос Нормальный кросс POST домен работает отлично. i.e $ http.post(). Я пробовал много разных вариантов заголовков на угловом, но ни один не помогает. Кроме того, запрос OPTIONS возвращает 200 OK, но отображается сообщение об ошибке ответа на предполетное сообщение. Может ли кто-нибудь помочь мне с дальнейшим отлаживанием этой проблемы?

+0

Добавить «Access-Control-Allow-Origin» в заголовки. – danial

+0

Запросить заголовки? Я не помог. –

+0

ответ заголовков. – danial

ответ

8

Попробуйте добавить:

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Headers: Origin, Content-Type'); 
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE'); 

в загрузчике/app.php Вы также можете вставить любой другой заголовок, вам может понадобиться для контроля доступа здесь.

Смежные вопросы