/** * 在 ajax request 前修改url,增加服务端`basePath` * `basePath`在`app.json`配置 */ Ext.define('Ext.overrides.data.Connection', { override: 'Ext.data.Connection', urlRegexp: /(http|ftp|https):\/\//, config: { /** * @cfg {Object} defaultServerHeaders * 与defaultHeaders有区别,只在调用server api的时候才添加的headers */ defaultServerHeaders: null }, /* 本地配置和服务器配置 "dev":{ "server": { "basePath": "http://127.0.0.1:24002", "urlPattern": "^\/api\/" } }, "prod":{ "server": { "basePath": "http://10.1.81.2:24002", "urlPattern": "^\/api\/" } }, */ privates: { setupServerOptions: function(options) { //检验是开发环境还是线上地址 let prod = RegExp("10.1.81.2:*").test(window.location.href); var basePath = prod?'http://10.1.81.2:24002':'http://127.0.0.1:24002', originUrl = options.url, urlPattern = "^\/api\/"; if ( new RegExp(urlPattern).test(originUrl) ) { Ext.Object.merge(options, { url: basePath + originUrl.replace('/api',''), headers: this.getDefaultServerHeaders() || {} }); } } }, request: function(options) { if (options && options.url) { this.setupServerOptions(options); } return this.callParent([options]); } });