Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用AJAX的Twitter基本身份验证存在问题_Javascript_Ajax_Twitter_Xmlhttprequest_Basic Authentication - Fatal编程技术网

Javascript 使用AJAX的Twitter基本身份验证存在问题

Javascript 使用AJAX的Twitter基本身份验证存在问题,javascript,ajax,twitter,xmlhttprequest,basic-authentication,Javascript,Ajax,Twitter,Xmlhttprequest,Basic Authentication,编辑:这个问题现在是多余的,因为Twitter不再支持基本身份验证。我把它保留了下来,因为它与任何在其他服务上通过AJAX进行基本身份验证的人都相关 我正在开发一个javascript应用程序,作为其功能的一部分,它需要用户能够更新他们的Twitter状态。该应用程序是为手机设计的,因此我不想让用户一路跑到Twitter站点登录;他们应该能够将他们的凭据传递到应用程序,我将处理所有登录 因此,我尝试将基本身份验证与restful API结合使用。我的代码如下所示: function postT

编辑:这个问题现在是多余的,因为Twitter不再支持基本身份验证。我把它保留了下来,因为它与任何在其他服务上通过AJAX进行基本身份验证的人都相关


我正在开发一个javascript应用程序,作为其功能的一部分,它需要用户能够更新他们的Twitter状态。该应用程序是为手机设计的,因此我不想让用户一路跑到Twitter站点登录;他们应该能够将他们的凭据传递到应用程序,我将处理所有登录

因此,我尝试将基本身份验证与restful API结合使用。我的代码如下所示:

function postTweet(input){
            $.ajax( {
                type: "POST",
                url: "http://twitter.com/statuses/update.json",
                data: {status: input},
                dataType: "json",
                error: function() { alert("Some error occured"); },
                success: function() { alert("Success!"); },
                beforeSend: function(request) { request.setRequestHeader("Authorization", "Basic BASE64OFMYCREDENTIALS");}
                } ) ;
        }
因此,据我所知,这应该从XMLHttpRequest头执行身份验证,然后发布状态

然而,每当我调用此代码时,我都会从Twitter收到一个“401未经授权”错误

以下是firebug的请求和响应标题:

请求:

OPTIONS /statuses/update.json HTTP/1.1
Host: twitter.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2) Gecko/20100115 Firefox/3.6
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
Access-Control-Request-Headers: authorization
答复:

HTTP/1.1 401 Unauthorized
Date: Sat, 13 Mar 2010 11:08:58 GMT
Server: hi
Status: 401 Unauthorized
WWW-Authenticate: Basic realm="Twitter API"
X-Runtime: 0.00204
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache, max-age=300
Set-Cookie: guest_id=1268478538488; path=/
_twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCPlyNlcnAToHaWQiJWUyN2YzYjc3OTk2NGQ3%250ANzJkYTA4MjYzOWJmYTQyYmUyIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVy%250AOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--d687808459872da0aa6a89cab35fd347300b4d07; domain=.twitter.com; path=/
Expires: Sat, 13 Mar 2010 11:13:58 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 88
Connection: close
如果有任何帮助,我们将不胜感激

谢谢

杰尔福德


顺便说一句,我应该提到我正在使用JQuery,以防不清楚。

由于该应用程序最终将只用于客户端(它是为JIL移动平台设计的),我决定咬紧牙关,完成完整的OAuth,并接受如果你在Firefox中以网页的形式打开它是行不通的

让我感到困惑的是——虽然我知道帖子在浏览器中永远不会起作用——我想通过在HTTPRequest对象中设置Auth头并仍然发出GET请求,一切都会好起来。显然不是

这一点现在是沉默的,因为应用程序已经过了最后期限(完成了:),但我想有人可能会想知道我没有通过基本的身份验证路线让它工作