【问题标题】:jQuery Ajax Unauthorized 401 ErrorjQuery Ajax 未经授权的 401 错误
【发布时间】:2023-03-23 18:10:02
【问题描述】:

我有这个代码:

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

我在使用 ajax 时收到 401 Unauthorized 错误,但是当我尝试使用普通的 POST 方法(非 ajax)时,我可以看到输出。
这是我在使用普通 POST 时看到的示例输出

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

顺便说一句,我将谷歌阅读器帐户集成到我的应用程序中,这就是我在 ajax-url 中调用该帐户的原因。

【问题讨论】:

    标签: php javascript jquery api google-reader


    【解决方案1】:

    这应该对你有帮助

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

    【讨论】:

    • 我收到此错误:NetworkError: 405 Method Not Allowed - google.com/reader/api/0/subscription/…"
    • @ElsonSolano 将身份验证替换为授权
    • 我认为 'beforeSend': 应该是 beforeSend:, @Ramil Amr: 我会改变那个。
    • 等一下,我遇到了一个奇怪的错误:在参数列表 [Break On This Error] } 之后丢失),
    • 我在我的 google chrome 控制台中收到此错误:XMLHttpRequest cannot load google.com/reader/api/0/subscription/…。 Access-Control-Allow-Origin 不允许来源my-domain.com。
    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    相关资源
    最近更新 更多