允许cors jQuery POST请求Express.js服务器上的Spotify API
为了在我的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); });
( spotify
是spotify-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身份validation流程的示例(请参阅authorization_code
方法)。
您无法获取访问令牌向/api/token
发出客户端请求。 您需要向/authorize
发出请求,该请求将重定向到您的redirect_uri
, redirect_uri
本身将使用访问令牌交换code
。
检查那个应该满足您需求的示例。
- HTTP标头设置授权标头停止加载数据
- 如何对AWS S3存储桶进行ajax调用以从文件夹中获取文件名?
- AngularJS禁用CORS?
- SSL CORS与Zend Guard不兼容
- instagram jquery ajax type =“GET,无法绕过CORS
- 是否有可能使application / json的跨域POST ajax请求?
- 当我尝试在响应头中获取具有Access-Control-Allow-Origin:*的图像的图像数据时,为什么会出现exception18?
- 不能让CORS在chrome和firefox中工作
- jQuery,CORS,JSON(没有填充)和身份validation问题