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

允许对https://accounts.spotify.com/api/token端点的前端JavaScript POST请求

鱼宜
2023-03-14
问题内容

为了在我的Web应用程序中获得Spotify
API的访问令牌(由其Web授权流程指定),我了解到必须提出POST请求。但是,这样做的时候,XMLHttpRequest 500 Error由于跨域问题,我得到了。

我已经弄清楚了如何允许CORS GET请求,但是不确定如何对POST请求执行相同的操作。该链接提供了配置提示,但保留的实际路由,GET并且为POST空。

这是我的Express.js服务器的相关代码:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});



app.use(express.static(__dirname + '/public')); // looks in public directory, not root directory (protects files)

app.get('/', function(req, res) {
  // res.header("Access-Control-Allow-Origin", "*");
  // res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.send(__dirname + '\\index.html')
});

app.post('/', function(req, res) {
    res.send(req.body.spotify);
});

spotifyspotify-web-api-js节点模块)。

我之前曾尝试将确切的代码复制app.get到中app.post,但这导致服务器崩溃。

这是程序的JavaScript文件中的一部分代码,旨在POST在用户单击将其带到Spotify授权路径开头并批准登录的按钮之后发送请求:

$('#spotify').on('click', function() {
    $.support.cors = true;

    $.post("https://accounts.spotify.com/api/token");

      });

(在这种情况下,spotify是HTML文件中按钮的ID)

在这种情况下,我应该怎么做才能绕开CORS问题?我已经难过了几天。


问题答案:

您可以在https://github.com/spotify/web-api-auth-
examples
上找到使用Express与Spotify进行身份验证流程的示例(请参见authorization_code方法)。

您无法获得向客户端发出的访问令牌的访问令牌/api/token。您需要向发送请求/authorize,该请求将重定向到您的请求,该请求redirect_uri本身将code与访问令牌交换。

检查该示例,它可以满足您的需求。



 类似资料:
  • 这是我的Express.js服务器的相关代码: (是节点模块)。 我以前尝试将的准确代码复制到中,但这导致服务器崩溃。

  • 我有一个应用程序与Spring-Boot一起提供服务。我已经为“API/...”添加了一些控制器--这些调用可以执行Angular Frontend需要的不同操作。我如何保护这些URL以便只有我的前端可以访问examlpe.com/api/...而不是每个用户?我不希望任何人能够访问examlpe.com/api/..但是他们应该能够访问example.com。 url example.com/a

  • 最初我得到了这个错误: CORS策略阻止从来源“http://test.net”访问位于“http://localhost:8000/leadmanager/api/lead/”的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。 因此,我检查了文档,安装了django-cors-headers,并在

  • 问题内容: 我正在尝试为我的角度应用程序启用oauth2令牌获取。我的配置运行正常(身份验证对于所有请求均正常运行,令牌提取也正常运行),但是有一个问题。 CORS请求要求在将GET OPTIONS请求发送到服务器之前。更糟糕的是,该请求不包含任何身份验证标头。我希望此请求始终返回200状态,而无需在服务器上进行任何身份验证。可能吗?也许我想念一些东西 我的Spring安全配置: angular

  • 我的目标是允许特定角色查看商店中的任何订单。虽然在“我的帐户”页面中显示所有订单相对容易,但访问不同用户创建的特定订单总是以“无效订单。我的帐户”错误结束。 到目前为止,我已经在filter中添加了自定义查询,这样就可以查看具有相同角色的帐户所做的所有订单。我将角色权限设置为完全权限(根据此链接,权限与店铺经理和管理员相同,但默认情况下这些角色也无法查看所有订单:https://github.co

  • 我在服务器上有一个自签名的grpc服务,并使用dart客户端在dart服务器上运行。但我不知道如何绕过或允许节点客户端的自签名证书。。我试过这个: 但当我调用时,我的验证checkServerIdentity没有调用。 有人有线索吗?