2016-02-18 1 views
0

Я использую Laravel 5.2 и выкладываете запрос на внешний веб-сайт
Laravel Аякса «Доступ к ограниченным URI отказано» в запросе после

мой Аякса является:

$("#userLogin").click(function(){ 
    var usrEmail = $("#usr_email").val(); 
    var usrPassword = $("#usr_password").val(); 
    $.ajax({ 
     xhrFields: { 
      withCredentials: true 
     }, 
     url: 'http://username:[email protected]/APIs/public/login', 
     data: {email: usrEmail, password:usrPassword}, 
     type: 'GET', 
     error: function (request, error) { 
      console.log(arguments); 
     }, 
     success: function(data) { 
      alert(data); 
     } 
    }); 
    event.preventDefault(); 
}); 

в .htaccess файле

<IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
    Header set Access-Control-Allow-Credentials true 
</IfModule> 


, но я получаю Тхи s ошибка

"NS_ERROR_DOM_BAD_URI: Access to restricted URI denied" 

ответ

0

Вы не можете отправить АЯКС данные в URL, как http://username:[email protected]/APIs/public/login Этот URL, кажется, использует Basic Auth. Поэтому вам нужно использовать обратный вызов beforeSend для добавления HTTP-заголовка с информацией об аутентификации:

var username = $("input#username").val(); 
var password = $("input#password").val(); 

function make_base_auth(user, password) { 
    var tok = user + ':' + password; 
    var hash = btoa(tok); 
    return "Basic " + hash; 
} 
$.ajax 
    ({ 
    type: "GET", 
    url: "http://website.com/APIs/public/login", 
    dataType: 'json', 
    async: false, 
    data: '{YOUR DATA + LARAVEL _token}', 
    beforeSend: function (xhr){ 
     xhr.setRequestHeader('Authorization', make_base_auth(username, password)); 
    }, 
    success: function(){ 
     ... 
    } 
}); 
+0

Как я могу сгенерировать этот '_token'? –

+0

@AshrafHefny В вашем 'HTML' вам нужно сгенерировать токен. Добавьте это в свой 'HTML' или' form' для создания токена, а затем отправьте этот токен с вашими данными ajax: '' – Sky

+0

@AshrafHefny См. Это тоже: http://stackoverflow.com/questions/32738763/laravel-csrf-token-mismatch-for-ajax-post-request – Sky