我使用@RolesAllowed({「Customer」})保護了Web服務。我已經使用Jersey客戶端API成功測試了代碼和安全配置。現在,我正嘗試使用AJAX從JavaScript訪問相同的服務。我在XMLHttpRequest的公開方法中設置了憑據:Ajax和Jersey Web服務的基本身份驗證
xhr.open("GET", url, true, "bob", "paasss");
這根本不起作用。讓我解釋一下:
XHR首先發送沒有授權標頭的請求。只有當它遇到401響應狀態和它重試請求的「WWW-Authenticate」標頭,並且這次發送授權標頭。當使用@RolesAllowed保護服務時,Jersey發送403狀態。因此,授權標頭永遠不會被髮送。
只有這樣我能得到這個工作組的授權頭自己:
xhr.setRequestHeader("Authorization", "Basic Ym9iOnBhc3N3MHJk");
這是做事的可以接受的方式?我能以某種方式讓澤西返回401而不是403以及「WWW-Authenticate」標題嗎?
謝謝!