|
|
@@ -0,0 +1,38 @@
|
|
|
+/**
|
|
|
+ * 在 ajax request 前修改url,增加服务端`basePath`
|
|
|
+ * `basePath`在`app.json`配置
|
|
|
+ */
|
|
|
+Ext.define('uas.override.data.Connection', {
|
|
|
+ override: 'Ext.data.Connection',
|
|
|
+
|
|
|
+ urlRegexp: /(http|ftp|https):\/\//,
|
|
|
+
|
|
|
+ config: {
|
|
|
+ /**
|
|
|
+ * @cfg {Object} defaultServerHeaders
|
|
|
+ * 与defaultHeaders有区别,只在调用server api的时候才添加的headers
|
|
|
+ */
|
|
|
+ defaultServerHeaders: null
|
|
|
+ },
|
|
|
+
|
|
|
+ privates: {
|
|
|
+ setupServerOptions: function(options) {
|
|
|
+ var serverOptions = Ext.manifest.server, originUrl = options.url;
|
|
|
+ if (serverOptions && serverOptions.basePath && !this.urlRegexp.test(originUrl) &&
|
|
|
+ (!serverOptions.urlPattern || new RegExp(serverOptions.urlPattern).test(originUrl))) {
|
|
|
+ Ext.Object.merge(options, {
|
|
|
+ url: serverOptions.basePath + originUrl.replace('/api',''),
|
|
|
+ headers: this.getDefaultServerHeaders() || {}
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ request: function(options) {
|
|
|
+ if (options && options.url) {
|
|
|
+ this.setupServerOptions(options);
|
|
|
+ }
|
|
|
+ return this.callParent([options]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|