如何验证和使用带有主干的外部api?

时间:2013-04-30 23:07:35

标签: web-services backbone.js basic-authentication

我正在尝试创建一个非常基本的小骨干应用程序,显示来自我公司的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错误。

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

This other StackOverflow question类似,有更多细节,你应该看一下。

但总的想法是,如果您无法访问远程服务器(我认为您不使用Harvest),那么您需要执行您自己控制的服务器的跨站点请求,最有可能是你正在部署这个骨干应用程序的那个。这意味着编写一些服务器端代码(PHP,Node等)来执行请求(从服务器端完全合法),然后从这些脚本请求客户端(Backbone app)。

以下是php的简短/伪示例:

<强> request.php

<?php
    echo file_get_contents('https://mycompany.harvestapp.com/projects');
?> 

<强> projects.js

var Projects = Backbone.Collection.extend({
    url: 'request.php',
});