XMLHttpRequest не работает с защитой .htaccess - PullRequest
1 голос
/ 11 января 2012

Я только начинаю портировать приложение iOS для телефонной связи.Я хочу сделать его мобильным веб-приложением на Android (мое разрабатывающее устройство - Galaxy Nexus под управлением Android 4.0.1).

В основном оно основано на взаимодействии с API (PHP 5), который я создал сам.Каталог API на сервере защищен файлом .htaccess.Это прекрасно работает на iOS / phonegap с кодом ниже.Однако, если я запускаю код на своем телефоне Android, запускается XMLHttpRequest, но затем браузер запрашивает у пользователя имя пользователя / пароль для доступа к каталогу - даже если учетные данные уже включены в запрос.

Любые идеи о том, чтоЯ мог поступить неправильно?

    if (checkConnection() == true) {

    window.localStorage.setItem("user_login_error_reported","0");

    params = "email=" + document.getElementById("e-mail").value + "&password=" + document.getElementById("password").value;


    var url = API_URL + "login.php";
    var request = new XMLHttpRequest();
    request.open("POST", url, true, API_USR, API_PWD );

    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");      
    request.setRequestHeader("Content-length", params.length);
    request.setRequestHeader("Connection", "close");

    request.onreadystatechange = function() {

        if(request.readyState == 4 && request.status==200) {

            var message = "";
            var user = JSON.parse(request.responseText);

            if (user.error == 1) {
                message = "Unbekannter Benutzer."
            }

            if (user.error == 2) {
                document.getElementById("password").value = "";
                message = "Falsches Passwort."
            }

            if (user.error == 0) {
                window.localStorage.setItem("user_name", user.name);
                window.localStorage.setItem("user_gender", user.gender);            
                window.localStorage.setItem("user_birthday", user.birthday);
                window.localStorage.setItem("user_picture", user.picturedata);
                window.localStorage.setItem("user_usercode", user.usercode);
                window.localStorage.setItem("user_userid", user.user_id);
                hideLoginScreen();
            }


        }

        if(request.status>399 && window.localStorage.getItem("user_login_error_reported")=="0" ) {
            alert("Es trat ein Fehler auf. Bitte versuchen Sie es später erneut.",null,"Übertragungsfehler","Danke");
            window.localStorage.setItem("user_login_error_reported","1");
        }

    }
    request.send(params);    

} else {
    alert("Es besteht keine Netzverbindung. Anmeldung nicht möglich.",null,"Übertragungsfehler","Danke");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...