Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 jQuery AJAX跨域,具有基本身份验证_Javascript_Jquery_Ajax_Cross Domain - Fatal编程技术网

Javascript jQuery AJAX跨域,具有基本身份验证

Javascript jQuery AJAX跨域,具有基本身份验证,javascript,jquery,ajax,cross-domain,Javascript,Jquery,Ajax,Cross Domain,我试图利用Beanstalk(beanstalkapp.com)API,将数据拉入网页,这样人们就可以在不访问我的SVN的情况下查看数据 我尝试通过jQuery使用AJAX请求来访问它。代码如下,但每次都会出错,无法返回数据 <script type="text/javascript"> $(document).ready(function() { var tok = 'username' + ':' + 'password123'; hash = btoa(

我试图利用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>

$(文档).ready(函数(){
var tok='username'+':'+'password123';
hash=btoa(tok);
authInfo=“Basic”+散列;
$.ajax({
url:“http://username.beanstalkapp.com/api/changesets.json",
beforeSend:function(xhr){xhr.setRequestHeader(“Authorization”,authInfo);},
键入:“获取”,
async:false,
跨域:是的,
数据类型:“json”,
成功:函数(html){
log(html);
},
错误:函数(html){
console.log('error');
}
});
});

如果我直接通过浏览器()访问URL,它就可以正常工作并返回json。但是,我无法让AJAX返回它。感谢您的帮助。谢谢

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

通常情况如下所示:

  • 客户端向服务器发送ajax请求
  • 您的服务器将请求转发到外部/远程服务器
  • 正在等待来自远程服务器的响应
  • 解析和处理来自远程服务器的响应
  • 将响应发送回客户端

  • 如果您使用的是php,那么就可以使用curl发送请求,这非常容易实现。我最近写了一篇关于这个主题的文章。

    你不能从你的域以外的域获得json。这是一个安全问题,需要使用非JSON解决。请检查此问题。用户名和密码不正确。提供正确的用户名和密码,然后再次检查。

    确保服务器/页面(或其他任何页面)允许通过Ajax进行请求。当您通过ajaxBishnu调用时,您是如何提供用户名和密码的?是否有其他方式远程获取数据?muthu-在上面的脚本中。这是var'tok'。我最后只是写了一个cURL脚本来实现这一点。服务器一定不喜欢被AJAX ping。如果有人想看它,请告诉我,我会编辑这个问题。即使使用正确的密码,它也会给我相同的身份验证错误。我遇到了这样的错误GET 401(未经授权)