当前位置: 首页 > 面试题库 >

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

劳烨
2023-03-14
问题内容

我试图通过将数据提取到网页中来使用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/
上撰写了有关此主题的文章。



 类似资料:
  • 在auth-routes示例中,api和nuxt一起启动并使用一个Node.js服务器实例。但是,有时我们应该使用jsonWebToken处理外部api身份验证问题。在这个例子中,将用最简单的方式解释。 官方 auth-module 如果要实现复杂的身份验证流程,例如OAuth2,我们建议使用官方 auth-module 结构 由于Nuxt.js同时提供服务器和客户端呈现,并且浏览器的cookie

  • 问题内容: 我一直在玩漂亮的汤和解析网页几天。在编写的所有脚本中,我一直使用一行代码作为救星。代码行是: 但是… 我想对(OPEN A URL WITH AUTHENTICATION)做同样的事情: 我无法打开网址并阅读需要身份验证的网页。我如何实现这样的目标: 问题答案: 看看官方文档中的如何使用urllib软件包获取Internet资源:

  • 我正在尝试创建一个服务来验证Angular2中的用户名和密码。下面是authentication.service.ts的代码 这是我使用slim框架的index.php 我的问题是我无法从容器['jwt']获取令牌。如果我给出了不正确的用户名和密码,那么令牌将保持为NULL。但如果我给出正确的用户名和密码。$result变量为我提供数据库中的数据。我可以验证密码。但是$request->getAt

  • 我试图用PHP为两个主题相连的领域创建一个简单的SSO系统。 因此,我想知道是否可以将包含用户用户名的签名JWT令牌从域a存储到本地存储。然后使用来自域B的相同密钥来验证JWT,这将导致成功的身份验证。 我在谷歌搜索了一些答案,我发现其中一些包含了一个中间认证域,它将负责认证。但我只想把我有的两个域联系起来。 谢了。

  • 问题内容: 我必须 使用 HTTP Basic身份验证从http服务器下载和解析XML文件。现在,我这样做: 但是以这种方式,我无法从具有http身份验证的服务器获取xml(或者我只是根本不知道该文档)文档。 如果您能向我展示实现我的目标的最好,最简单的方法,我将不胜感激。 问题答案: 您可以使用。例如: 这将设置默认值,并将在 所有 请求中使用。显然,当您不需要所有请求的凭据或多个不同的凭据(可

  • 问题内容: Java应用程序需要访问SharePoint 2013 REST API https://msdn.microsoft.com/zh- cn/library/office/jj860569.aspx 倾向于使用BASIC身份验证: 在网络上有许多使用其余api的示例,但似乎没有一个可以处理身份验证。也许我在这里错过了一些非常简单的事情。 这可以通过POSTMAN手动进行:http :/