具有BASIC身份验证的jQuery AJAX跨域

我试图通过将数据提取到网页中来使用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>

如果我直接通过浏览器(http://username.beanstalkapp.com/api/changesets.json)访问该URL,它将正常工作并返回json。但是,我无法获得AJAX来返回它。任何帮助表示赞赏。谢谢!

回答:

您将需要为跨域ajax请求创建代理。

通常情况如下:

  1. 客户端发送ajax请求到服务器
  2. 您的服务器将请求转发到外部/远程服务器
  3. 等待来自远程服务器的响应
  4. 解析并处理来自远程服务器的响应
  5. 发送回复给客户

如果您使用的是php,则可以发送带有curl的请求,并且很容易实现。我最近在http://www.svlada.com/proxy-ajax-

requests-curl-and-symfony-2/上撰写了有关此主题的文章。

以上是 具有BASIC身份验证的jQuery AJAX跨域 的全部内容, 来源链接: utcz.com/qa/410151.html

回到顶部