【问题标题】:Using AJAX to submit hybridauth使用AJAX提交hybridauth
【发布时间】:2012-11-12 06:28:05
【问题描述】:

我正在使用 Ajax 提交 hybridauth,但提交直接失败,有没有人尝试过这样的事情?请参阅下面的代码示例。

(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);
        }
    });
});

【问题讨论】:

  • 您的浏览器对身份验证有何看法,在 Firefox 中使用 chrome 中的 firebug 打开检查器并观察与服务器的连接,查看有关连接的信息,然后在不知道是什么原因的情况下更新您的问题我们无法帮助您的错误可能是 500 错误(服务器上的脚本失败)或 404(找不到文件)

标签: jquery ajax jquery-mobile hybridauth


【解决方案1】:

您能测试一下您在 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);
}

这是确定您是否得到预期结果的良好第一步。

【讨论】:

  • 抱歉,我因为沮丧而离开了这个项目,最近又回到了它,有点聪明,但没有更接近的解决方案。我确实发现 login.php 正在接收适当的 Provider 信息,但是在某处它失败了,并导致一个对话框窗口简单地重新打开。
  • 我实际上刚刚设法将其缩小到 isConnectedWith() 的问题(它没有返回任何值),这不应该是一个问题,因为我真的与我有联系正在测试,并且该网站的另一个版本运行良好。
  • VikingGoat,你解决了吗?我的意思是弹出对话框,因为我也不能:(
【解决方案2】:

由于身份验证需要将用户重定向到提供程序,因此它不适用于 AJAX 调用。后端脚本会在 Redirect 函数中 die()。

对于替代解决方案,请检查此方法:https://stackoverflow.com/a/29891358/1816603

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 2015-11-10
    • 2012-02-10
    • 2013-05-19
    • 2012-11-16
    • 2017-02-04
    相关资源
    最近更新 更多