我有一个使用ember-couchdb-kit与CouchDB实例接口的应用程序。在要求身份验证后,我无法访问服务器。
我尝试了Cookie身份验证,并在浏览器中设置了Cookie,但根据Chrome和Firefox中的网络对话框,它不会被发送到数据库以供后续请求使用。
我不明白为什么会这样,但为了让应用程序正常运行,我想尝试使用HTTP身份验证。
我的文档适配器只是:
App.Host = 'http://localhost:5984'
App.ApplicationAdapter = EmberCouchDBKit.DocumentAdapter.extend( { db: 'wells', host: App.Host } )
我想在网址中添加用户名和密码,因此在用户输入后,我会运行:
EmberCouchDBKit.DocumentAdapter.reopen( {
host: ( function() {
var parts = App.Host.split( '://' )
return "%@://%@:%@@%@".fmt( parts[0], $('#username').val(), $('#password').val(), parts[1] )
} )()
} )
后续请求的URL并未发生变化。我需要做什么?
答案 0 :(得分:0)
每次使用时都不会重新创建适配器,并且重新打开仅适用于新创建的实例。因此,您需要在现有的适配器实例上重新定义它。在路线/控制器内你可以这样做:
var adapter = this.store.adapterFor('application');
adapter.set('host', 'foobar');