jQuery的阿贾克斯未经授权401错误 [英] jQuery Ajax Unauthorized 401 Error

查看:228
本文介绍了jQuery的阿贾克斯未经授权401错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的code:

 < PHP
$用户名= $ _ POST [用户名];
$密码= $ _ POST ['密码'];
$ CK =时间();
$读=新GoogleReaderAPI($的用户名,密码$);
$令牌= $读>为gettoken();回声RSS订阅:LT;输入类型=文本名称='rss_feed/>< BR />中;
回声<输入类型=隐藏值='$令牌'ID ='令牌'/>中;
回声<输入类型=隐藏值='$ CK'ID ='CK'/>中;
回声<输入类型=隐藏价值= $的用户名'ID =用户名/>中;
回声<输入类型=隐藏价值= $的密码'ID ='密码'/>中;
呼应'<输入类型=按钮值=提交ID =点击/>';
回声< D​​IV ID ='结果'>< / DIV>中;
?>
<脚本>
jQuery的(#点击)。点击(函数(){
    VAR快速添加=逃生(jQuery的(输入[名称= rss_feed])VAL());
    VAR T =逃生(jQuery的(#标记)VAL());
    VAR CK =逃生(jQuery的(#CK)VAL());
    VAR PARAMS =快速添加=+快速添加+& T公司=+ T;        jQuery.ajax({
            键入:POST,
            网址:http://www.google.com/reader/api/0/subscription/quickadd?ck=\"+ck+\"&client=scroll
            数据:参数,可以
            的contentType:应用/ JSON
            成功:功能(数据){
                警报(数据);
            }
        });
    });

我使用Ajax时得到一个401错误未经授权,但是当我尝试使用普通的POST方法(非Ajax),那么我能够看到的输出。
结果这是使用普通邮递时我看到一个〔实施例输出中

<$p$p><$c$c>{\"query\":\"http://feeds.feedburner.com/TechCrunchIT\",\"numResults\":1,\"streamId\":\"feed/http://feeds.feedburner.com/TechCrunchIT\"}

通过即时集成在我的应用程序,这就是为什么我打电话的谷歌阅读器帐户的方式,一个在阿贾克斯的URL。


解决方案

这会帮助你。

  jQuery.ajax({
            键入:POST,
            网址:http://www.google.com/reader/api/0/subscription/quickadd?ck=\"+ck+\"&client=scroll
            数据:参数,可以
            的contentType:应用/ JSON
            beforeSend:功能(XHR){
                 xhr.setRequestHeader(验证,基本+ EN codeBase64(用户名+:+密码)//可能需要使用授权,而不是
            },
            成功:功能(数据){
                警报(数据);
            }
        });

I have this code:

<?php
$username = $_POST['username'];
$password = $_POST['password'];
$ck = time();
$read = new GoogleReaderAPI( $username, $password );
$token = $read->getToken();

echo "RSS Feed: <input type='text' name='rss_feed' /> <br /> ";
echo "<input type='hidden' value='$token' id='token' />";
echo "<input type='hidden' value='$ck' id='ck' />";
echo "<input type='hidden' value='$username' id='username' />";
echo "<input type='hidden' value='$password' id='password' />";
echo '<input type="button" value="Submit" id="click"/>';
echo "<div id='result'></div>";
?>
<script>
jQuery("#click").click(function(){
    var quickadd = escape( jQuery("input[name=rss_feed]").val() );
    var T = escape( jQuery("#token").val() );
    var ck = escape( jQuery("#ck").val() );
    var params = "quickadd="+quickadd+"&T="+T;

        jQuery.ajax({
            type: "POST",
            url: "http://www.google.com/reader/api/0/subscription/quickadd?ck="+ck+"&client=scroll",
            data: params,
            contentType: "application/json",
            success: function(data){
                alert(data);
            }
        });
    });

I'm getting a 401 Unauthorized error when using ajax but when I try to use an ordinary POST method (non-ajax), then I am able to see the output.
This is an exmaple ouput that i'm seeing when using an ordinary POST

{"query":"http://feeds.feedburner.com/TechCrunchIT","numResults":1,"streamId":"feed/http://feeds.feedburner.com/TechCrunchIT"}

By the way i'm integrating the google reader account in my application that is why i'm calling that one in the ajax-url.

解决方案

This should help you

jQuery.ajax({
            type: "POST",
            url: "http://www.google.com/reader/api/0/subscription/quickadd?ck="+ck+"&client=scroll",
            data: params,
            contentType: "application/json",
            beforeSend: function(xhr) {
                 xhr.setRequestHeader("Authentication", "Basic " + encodeBase64(username + ":" + password) //May need to use "Authorization" instead
            },
            success: function(data){
                alert(data);
            }
        });

这篇关于jQuery的阿贾克斯未经授权401错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆