- Google 크롬 플러그인을 개발 중입니다.
- 암호가 필요한 서버에 AJAX 요청을 실행 중입니다.
- 암호가 올바르지 만 브라우저가 팝업 창을 표시하면 오류를 catch하고 싶습니다.
alt text http://img834.imageshack.us/img834/2905/browserproblem.png브라우저 기본 암호 팝업을 비활성화하는 방법은 무엇입니까?
나는 그것을 사용하지 않고 어떻게 할 수 있습니까?
alt text http://img834.imageshack.us/img834/2905/browserproblem.png브라우저 기본 암호 팝업을 비활성화하는 방법은 무엇입니까?
나는 그것을 사용하지 않고 어떻게 할 수 있습니까?
문제는 전송중인 사용자 이름 (즉, 인증 토큰) 및 (더미) 암호를 Base64 인코딩하지 않는 것입니다 (HTTP 기본 인증 방식의 요구 사항 임).
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://onsip.highrisehq.com/account.xml');
xhr.setRequestHeader('Authorization', 'Basic ' + btoa(token + ':'));
xhr.onreadystatechange = function() { console.log(xhr.responseText); };
xhr.send();
(. 내가 당신을 위해 하위 도메인으로 'onsip'
에 교환,하지만 당신은 여전히 당신의 인증 토큰으로 token
를 교체해야합니다)
확실하지 않은 경우 시도 var xhr = new HMLHttpRequest(); xhr.open ('GET', 'UrlToServerThatUsesBasicHttpAuthentication', true, Login, WrongPassword); xhr.send(); – simple
byoogle은 GET 기반 기본 인증 대신 37signals.com에서 POST 기반 인증을 사용하는 것이 무엇을 말하고 싶습니까? – chx
맞습니다. "POST"를 사용해야합니다. Highrise 로그인 페이지에 대해 패킷 스니퍼를 실행하여 위의 매개 변수를 얻었으므로 페이지가 전송하는 것과 정확하게 일치해야합니다 (페이지 소스를 볼 경우 양식 메서드가 "POST"로 설정되어있는 것을 볼 수 있습니다 "GET"). 나는 그들이 나를 위해 일하기 때문에 내가 지나가고있는 매개 변수를 복사 해 보는 것이 좋습니다. – oldestlivingboy
내가 아는 두 가지 방법 중 하나를 : 여기에 대략 무엇 코드는 다음과 같다한다고 Firefox XUL 코드 (웹 코드가 아님)에서이 작업을 수행 할 수 있습니다. 그 중 하나는 Google 크롬에 적용되지 않으며, 빠른 테스트는 다른 하나도 표시하지 않는 것으로 보입니다.
세 가지 옵션이 나에게 발생합니다.
Re : # 3, 대부분의 브라우저에서 WWW-Authenticate 헤더가 없기 때문에 상태가 401 인 경우에도 auth 팝업이 표시되지 않습니다. 물론 WWW-Authenticate 헤더가없는 상태 401은 사양을 위반하지만 ... 인증 실패를 위해 401 이외의 다른 것. 이것이 왜곡 된 이유입니다. 실제로, XmlHttpRequest 객체는 팝업을 비활성화하는 설정을 가져야합니다 ... –
누구? 아마도 추측일까요? – simple