我试图通过将数据拉入网页来使用Beanstalk(beanstalkapp.com)API,以便人们可以在不访问我的SVN的情况下查看它。
我正在尝试访问它是通过jQuery使用AJAX请求。代码如下,但每次都会出错,并且无法返回数据。
<script type="text/javascript">
$(document).ready(function() {
var tok = 'username' + ':' + 'password123';
hash = btoa(tok);
authInfo = "Basic " + hash;
$.ajax({
url: "http://username.beanstalkapp.com/api/changesets.json",
beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", authInfo); },
type: "GET",
async: false,
crossDomain: true,
dataType: "json",
success: function(html){
console.log(html);
},
error: function(html){
console.log('error');
}
});
});
</script>
如果我直接通过我的浏览器访问URL(http://username.beanstalkapp.com/api/changesets.json),它可以正常工作并返回json。但是,我无法让AJAX返回它。任何帮助表示赞赏。谢谢!
答案 0 :(得分:4)
您需要为跨域ajax请求创建代理。
通常情况如下:
如果你使用的是php,你可以用curl发送请求,而且很容易实现。我最近写了一篇关于这个主题的文章http://www.svlada.com/proxy-ajax-requests-curl-and-symfony-2/。
答案 1 :(得分:0)
你不能从其他领域得到一个json而不是你的。这是一个名为same origin policy的安全问题,使用JSONP而不是JSON来克服它。
答案 2 :(得分:0)
检查jsfiddle。用户名和密码不正确。提供正确的用户名和密码,然后再次检查。