web-services - 如何通过主干验证和使用外部 api?

标签 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 错误。

解决这个问题的最佳方法是什么?

最佳答案

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/

相关文章:

jquery - 使用 jQuery 调用 Spring REST WebService

c# - 无法将类型为 MyObject 的对象转换为类型 MyObject

c# - 如何向我的 SOAP 添加 Basic Auth Header?

javascript - Backbone 在获取时重置集合

javascript - Backbone.js:model.isNew() == true,但 model.save() 导致 POST 请求而不是 PUT

jquery - 为什么我的服务器忽略来自 ajax 请求的身份验证 header ?

android - 如何在改造中发送带有基本身份验证的帖子请求?

java - ClientAbortException : java.net.SocketException:jboss 服务器上间歇性出现连接重置错误

java - 在 Java 中调用安全的 Web 服务

使用 Jasmine 和 Sinon 在匿名函数中测试 Backbone 代码