【问题标题】:set backbone to point to an external endpoint将主干设置为指向外部端点
【发布时间】:2012-05-23 06:40:05
【问题描述】:

在骨干网中,我如何将我的实体指向外部端点?

例如,我的应用在 http://myapp.com 上运行

我希望它使用 followgin rest web 服务

http://external.com/api/rest/xxxx

我尝试使用 urlRoot 属性,但它似乎并没有那样工作

Sagan.FeatureModel = Backbone.Model.extend({
  defaults: {
    name: "New Feature",
    parent: "",
    enabled: false
  },
  urlRoot: 'http://localhost:9001/',
  url: 'features'
});

出于测试目的,应用托管在 localhost:9000 上,外部 Web 服务托管在 localhost:9001。

backbone 似乎仍然指向 localhost:9000 而不是 9001

【问题讨论】:

  • 告诉我们你是如何使用urlRoot的。
  • @opensas 服务是否响应model JSONcollection JSON。如果是集合,则将确切的端点 url 设置为集合 URL
  • 添加了一个示例,展示了我如何尝试使用 urlRoot 进行操作
  • 只使用 urlRoot 不要使用 url 使用 url 会导致它将请求发送到脚本的源。您可能会遇到“XMLHttpRequest cannot load $REMOTE. Origin $LOCAL is not allowed by Access-Control-Allow-Origin.”的问题。
  • 谢谢 Alexander,您知道解决 Access-Control-Allow-Origin 问题的方法吗?

标签: web-services backbone.js endpoint


【解决方案1】:

在您的示例中,您正在为模型设置自定义 urlRooturl 属性。

设置自定义url 属性将使您的自定义urlRoot 被忽略,因为此属性用于默认 url 行为,请查看Model.url documentation

如果您希望您的模型使用 端点 http://external.com/api/rest/features,只需将其添加到 urlRoot 并保持 url 不变:

urlRoot: "http://external.com/api/rest/features"

它会创建这样的路由:

GET http://external.com/api/rest/features/1

用于获取 id 为 1 的模型。

【讨论】:

  • 谢谢,它成功了...现在它发送一个 OPTIONS 请求方法而不是 DELETE,但这是另一个问题,很可能是另一个 stackoverflow 问题 ;-)
  • 您的浏览器正在尝试请求服务器验证,以便从另一个 进行访问。搜索 CORS 我相信您会在 StackOverflow 中找到大量信息。运气!。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多