qooxdoo的qx.data.store.Json,当用于跨源请求时,不会发送任何cookie或身份验证数据。
这个要求并不像看起来那么罕见。想象一下典型的开发人员设置:在localhost:8080上运行的JavaEE后端,以及由“source-server”生成器任务或IDE的内置Web服务器提供的qooxdoo应用程序,例如localhost:8181。
成功验证后,将为localhost设置JSESSIONID cookie。对于XHR(localhost:8181 - > localhost:8080)成功,此cookie应与请求一起发送。
很明显,由于缺乏对qx.bom.request.Xhr中withCredentials属性的支持而未发送cookie,并且可能需要单独的RFE。我正在寻找的是快速而肮脏的解决方法,以便开发和运行开发过程。最好的方法是什么?可以在没有修补框架代码的情况下完成吗?
答案 0 :(得分:1)
无需变脏;-) qx.data.store.Json
的构造函数接受具有configureRequest
方法的委托qx.data.store.IStoreDelegate
。
var delegate = {'configureRequest': function(request)
{
// request is `qx.io.request.Xhr`
// request.getTransport() is `qx.bom.request.Xhr`
var nativeXhr = request.getTransport().getRequest();
nativeXhr.withCredentials = true;
}};
var store = new qx.data.store.Json('http://localhost/your.json', delegate);
此外,qx.data.store.Json
仅为135 SLOC。写自己的商店应该不难。