我正在尝试创建一个非常基本的小主干应用程序,它显示我公司的 Harvest 的统计数据帐户。他们有一个 REST API,可以通过 Basic Auth 或 oAuth 进行身份验证。我似乎在这里面临两个问题:
- 身份验证
- 跨源请求
所以我开始将我的收藏的 url 设置为相应的 url:
var Projects = Backbone.Collection.extend({
url: 'https://mycompany.harvestapp.com/projects',
});
我尝试过使用 this basic auth plugin但我无法判断该部分是否正常工作,因为我仍然收到 Access-Control-Allow-Origin 错误。
解决这个问题的最佳方法是什么?
最佳答案
This other StackOverflow question类似,并且有更多细节值得您查看。
但总体思路是这样的,如果您无法访问远程服务器(我认为 Harvest 无法访问),那么您需要从您自己控制的服务器执行跨站点请求,最有可能的是您正在部署此 Backbone 应用程序的那个。这意味着编写一些服务器端代码(PHP、Node 等)来执行请求(从服务器端完全合法),然后让您的客户端(Backbone 应用程序)从这些脚本发出请求。
这是一个 php 的简短/伪示例:
request.php
<?php
echo file_get_contents('https://mycompany.harvestapp.com/projects');
?>
projects.js
var Projects = Backbone.Collection.extend({
url: 'request.php',
});
关于web-services - 如何通过主干验证和使用外部 api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16310372/