Ember.js EmberJs作为带有外部API的PhoneGap

Ember.js EmberJs作为带有外部API的PhoneGap,ember.js,cordova,Ember.js,Cordova,请您提供以下建议: 我有一个用emberjs编写的web应用程序,它的后端是Rails。现在我要用phonegap将这个应用程序移植到iOS上,我正在努力的是如何设置我的API端点,它将在iPhone上工作 据我所知,当通过浏览器在web上使用EmberJs时,会使用您当前的位置发出API请求,但当将应用程序用作iOS应用程序时,这种方法不起作用 我真的在寻找一些优雅的解决方案来简单地替换主机名或其他什么 谢谢你的帮助 更新: 这一个用于更改API URL DS.RESTAdapter.reop

请您提供以下建议:

我有一个用emberjs编写的web应用程序,它的后端是Rails。现在我要用phonegap将这个应用程序移植到iOS上,我正在努力的是如何设置我的API端点,它将在iPhone上工作

据我所知,当通过浏览器在web上使用EmberJs时,会使用您当前的位置发出API请求,但当将应用程序用作iOS应用程序时,这种方法不起作用

我真的在寻找一些优雅的解决方案来简单地替换主机名或其他什么

谢谢你的帮助

更新:

这一个用于更改API URL

DS.RESTAdapter.reopen({
  url: 'http://somedomain.com'
});
但现在,存在访问控制问题:

Origin http://somedomain.com is not allowed by Access-Control-Allow-Origin. 

由于您尚未发布有关适配器配置方式的任何代码,因此这是为适配器设置自定义url的正确方法:

DS.RESTAdapter.reopen({
  url: 'https://somedomain.com/api'
});
然后,如果您有一个模型,例如App.User,则对App.User列表的请求现在将转到https://somedomain.com/api/user/ 对于特定的用户idhttps://somedomain.com/api/user/123 分别

更新

当从浏览器进行测试时,您必须启动带有标志“禁用web安全性”的浏览器,以使跨原点工作。但在real live中,您必须配置服务器以使用以下命令设置响应HTTP头:

因此,在rails的情况下,您可以这样配置控制器服务器端以接受跨源请求,并相应地设置标头:

...
after_filter :cors_set_access_control_headers

def cors_set_access_control_headers
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Allow-Methods'] = 'POST, GET, PUT' # etc. etc.
  headers['Access-Control-Max-Age'] = "1728000"
end
...
有关如何为rails配置CORS的更多示例,您可以搜索CORS For JSON和rails


希望对您有所帮助

因为您还没有发布任何关于适配器配置的代码,这是为适配器设置自定义url的正确方法:

DS.RESTAdapter.reopen({
  url: 'https://somedomain.com/api'
});
然后,如果您有一个模型,例如App.User,则对App.User列表的请求现在将转到https://somedomain.com/api/user/ 对于特定的用户idhttps://somedomain.com/api/user/123 分别

更新

当从浏览器进行测试时,您必须启动带有标志“禁用web安全性”的浏览器,以使跨原点工作。但在real live中,您必须配置服务器以使用以下命令设置响应HTTP头:

因此,在rails的情况下,您可以这样配置控制器服务器端以接受跨源请求,并相应地设置标头:

...
after_filter :cors_set_access_control_headers

def cors_set_access_control_headers
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Allow-Methods'] = 'POST, GET, PUT' # etc. etc.
  headers['Access-Control-Max-Age'] = "1728000"
end
...
有关如何为rails配置CORS的更多示例,您可以搜索CORS For JSON和rails


希望对您有所帮助

我尝试过谷歌搜索,目前没有运气,现在正在浏览余烬数据的源代码以找到线索。我尝试过谷歌搜索,目前没有运气,现在正在浏览余烬数据的源代码以找到线索。谢谢!这在更改URL方面是有效的,但现在有另一个问题:访问控制不允许使用源代码允许使用源代码..您何时收到源代码错误?从浏览器进行测试?如果是这样的话,你必须启动带有“禁用网络安全”标志的chrome浏览器才能正常工作。谢谢!这在更改URL方面是有效的,但现在有另一个问题:访问控制不允许使用源代码允许使用源代码..您何时收到源代码错误?从浏览器进行测试?如果是这样的话,你必须启动带有标志的chrome浏览器——禁用网络安全,使其正常工作。