laravel ajax “访问受限 URI 被拒绝”在发布请求中


laravel ajax "Access to restricted URI denied" in post request

我正在使用laravel 5.2,并尝试将请求发布到外部网站

我的 ajax 是:

$("#userLogin").click(function(){
    var usrEmail = $("#usr_email").val();
    var usrPassword = $("#usr_password").val();
    $.ajax({ 
        xhrFields: {
            withCredentials: true
        },
        url: 'http://username:password@website.com/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>

但是我收到此错误

"NS_ERROR_DOM_BAD_URI: Access to restricted URI denied"

您不能将 ajax 数据发送到类似 http://username:password@website.com/APIs/public/login 此 URL 似乎使用基本身份验证。因此,您需要使用 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 (){
        ...
    }
});