本文介绍了jQuery的阿贾克斯未经授权401错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这样的code:
< PHP
$用户名= $ _ POST [用户名];
$密码= $ _ POST ['密码'];
$ CK =时间();
$读=新GoogleReaderAPI($的用户名,密码$);
$令牌= $读>为gettoken();回声RSS订阅:LT;输入类型=文本名称='rss_feed/>< BR />中;
回声<输入类型=隐藏值='$令牌'ID ='令牌'/>中;
回声<输入类型=隐藏值='$ CK'ID ='CK'/>中;
回声<输入类型=隐藏价值= $的用户名'ID =用户名/>中;
回声<输入类型=隐藏价值= $的密码'ID ='密码'/>中;
呼应'<输入类型=按钮值=提交ID =点击/>';
回声< DIV 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),那么我能够看到的输出。
结果这是使用普通邮递时我看到一个〔实施例输出中
通过即时集成在我的应用程序,这就是为什么我打电话的谷歌阅读器帐户的方式,一个在阿贾克斯的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错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!