Использование AJAX для отправки гибридной аутентификации

Я использую Ajax для отправки гибридной аутентификации, но отправка сразу не работает, кто-нибудь пробовал что-то подобное раньше? Ниже приведены примеры кода.

(login.php не изменяется, но отправляет результаты в файл обработчика, который отправляет результаты обратно в случае успеха)

$(".socialClient").click(function(){
    var socID = $(this).attr("id");  //the ID for the social media provider image is the name of the provider
    $.ajax({
        type: "GET",
        url: "hybridauth/login.php",
            cache: false,
            data: {provider:socID},
        //enctype: "multipart/form-data",
        dataType: "text",
        success: function(data){
            //handle response, user info and such
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert("Social media logon failed. Error code:" +thrownError);
        }
    });
});

person VikingGoat    schedule 23.11.2012    source источник
comment
Что ваш браузер говорит об аутентификации, в firefox используйте firebug в chrome, откройте инспектор и посмотрите соединения с сервером, посмотрите, какая информация предоставляется о соединении, затем обновите свой вопрос, не зная, что вызывает ошибку, мы не можем вам помочь это может быть что угодно, от ошибки 500 (сбой скрипта на сервере) до 404 (файл не найден)   -  person Barkermn01    schedule 24.11.2012


Ответы (2)


Можете ли вы проверить, что вы получаете в файле login.php? Возможно, вы уже пробовали это, но JIC отредактируйте login.php, чтобы отразить полученный результат, например:

LOGIN.PHP (в самом верху файла):

<?php
$p = $_POST['provider']; //this may not be your post variable name
echo $p;
die();

И затем в вашей функции успеха ajax предупредите себя о том, что вы получаете:

success: function(data) {
    alert(data);
}

Хороший первый шаг, чтобы узнать, получаете ли вы то, что ожидаете.

person cssyphus    schedule 23.11.2012
comment
Извините, я ушел из этого проекта из-за разочарования и вернулся к нему совсем недавно, немного поумнев, но не ближе к решению. Я обнаружил, что login.php получает соответствующую информацию о провайдере, но где-то по пути он дает сбой и вызывает повторное открытие диалогового окна поверх самого себя. - person VikingGoat; 17.04.2013
comment
На самом деле мне только что удалось сузить его до проблемы с isConnectedWith() (он не возвращает никакого значения), что не должно быть проблемой, поскольку я действительно связан с тем, что я тестирую, и с другой версией сайт работает нормально. - person VikingGoat; 17.04.2013
comment
VikingGoat, вы решили эту проблему? Я имею в виду всплывающий диалог, потому что я тоже не могу :( - person InsaurraldeAP; 27.06.2014

Поскольку аутентификация требует перенаправления пользователя к провайдеру, она не будет работать с вызовами AJAX. Бэкэнд-скрипт умрет() в функции перенаправления.

Для альтернативного решения проверьте этот подход: https://stackoverflow.com/a/29891358/1816603

person Jose Gómez    schedule 20.10.2015