gpt4 book ai didi

php - Laravel auth AJAX 没有弹出窗口

转载 作者:行者123 更新时间:2023-12-01 06:10:22 25 4
gpt4 key购买 nike

我一直在经历这个tutorial

终端 cURL 请求一切正常,但使用 jQuery 时会弹出一个身份验证窗口。有没有办法阻止此弹出窗口并将登录凭据从 jQuery 传递到 API? --user 到底如何从终端工作以及如何从 jQuery“模拟”它?

终端:

$ curl --user username:password http://localhost/api/v1/email
{"error":false,"authEmail":"me@localhost","message":"request success"}

Laravel Controller 方法:

public function index() {
return Response::json(array(
'error' => false,
'authEmail' => Auth::user()->email,
'message' => 'request success'), 200);
}

Laravel 过滤器:

Route::filter('auth.basic', function() {
return Auth::basic('username');
});

Laravel 路线:

Route::group(array('prefix' => 'api/v1', 'before' => 'auth.basic'), function() {
Route::resource('email', 'EmailController');
});

jQuery:

(function($) {
$(document).ready(function() {
$.ajax({
url: 'http://localhost/api/v1/email',
type: 'GET',
dataType: 'json',
data: {
username: 'username',
password: 'password'
}
}).complete(function(data) {
console.log(data.responseJSON);
});
});
})(jQuery);

最佳答案

您可以使用beforeSend回调添加认证信息:

(function($) {

$(document).ready(function() {

ajax({

url: 'http://localhost/api/v1/email',

type: 'GET',

dataType: 'json',

beforeSend: function(xhr) { xhr.setRequestHeader(

"Authorization",

"Basic " + btoa('username' + ":" + 'password')); }

})

.complete(function(data) {console.log(data.responseJSON)})

});

})(jQuery);

关于php - Laravel auth AJAX 没有弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22345759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com