我一直打算通過這個tutorialLaravel AUTH AJAX沒有彈出
一切工作從終端捲曲請求不錯,但我得到一個彈出身份驗證使用jQuery的時候。有沒有辦法來阻止這個彈出窗口並將登錄憑據從jQuery傳遞到API? - 用戶如何從終端工作,以及如何從jQuery「模擬」這一點?
終端:
$ curl --user username:password http://localhost/api/v1/email
{"error":false,"authEmail":"[email protected]","message":"request success"}
Laravel控制器的方法:
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);
很酷的這個作品完美。那麼這是如何爲其他API做的呢?只是設置標題的問題?那麼我認爲這同樣適用於PHP呢? – VaughanFGX
使用基本認證時需要設置標題。普通身份驗證使用POST數據或任何您已設置使用的數據,但HTTP基本身份驗證是HTTP標準的一部分,需要正確的標頭。 – ollieread