2009-10-30 33 views
10

Tôi đang cố gắng sử dụng XMLHTTPRequest để nhận bản cập nhật trên twitter.Xác thực cơ bản Với XMLHTTPRequest

var XMLReq = new XMLHttpRequest(); 
XMLReq.open("GET", "http://twitter.com/account/verify_credentials.json", false, "TestAct", "password"); 
XMLReq.send(null); 

Tuy nhiên, sử dụng trình thám thính của tôi Tôi không thể thấy bất kỳ tiêu đề ủy quyền nào được chuyển qua. Do đó, tôi nhận được phản hồi lỗi 401 từ Twitter.

Tài khoản và mật khẩu được nhập chính xác.

Bất kỳ ai thử điều này? Bất cứ ai có thể cho tôi một số gợi ý? Cảm ơn bạn.

Trả lời

1

Do chính sách gốc Xuất xứ, bạn không thể tạo XMLHttpRequest từ miền của mình sang tên miền khác. Ví dụ. bạn không thể sử dụng các URL http://twitter.com/... trừ khi tập lệnh của bạn được tải từ twitter.com. Nếu tập lệnh của bạn được tải từ http://localhost/, yêu cầu AJAX cũng cần phải chuyển đến localhost.

44

Bạn chỉ cần thêm một tiêu đề ủy quyền, một tên người dùng và mật khẩu trong một chuỗi base64 mã hóa như sau.

XMLReq.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
+1

nên 'cái client' trong đoạn mã là 'XMLReq' (biến từ câu hỏi)? – JaKu

+0

Thực tế, Có bạn là chính xác. Phương thức này là XMLHttpRequest.setRequestHeader (tiêu đề, giá trị). –

Các vấn đề liên quan