| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /**
- * 在 ajax request 前修改url,增加服务端`basePath`
- * `basePath`在`app.json`配置
- */
- Ext.define('saas.override.data.Connection', {
- override: 'Ext.data.Connection',
-
- urlRegexp: /(http|ftp|https):\/\//,
- config: {
- /**
- * @cfg {Object} defaultServerHeaders
- * 与defaultHeaders有区别,只在调用server api的时候才添加的headers
- */
- defaultServerHeaders: null
- },
- privates: {
- parseBasePath: function(basePath) {
- if (Ext.isObject(basePath)) {
- var protocol = window.location.protocol.split(":")[0];
- if (protocol === 'file') {
- protocol = 'https';
- }
- return basePath[protocol];
- }
- return basePath;
- },
- 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: this.parseBasePath(serverOptions.basePath)
- + (originUrl.indexOf('/') == 0 ? '' : '/') + originUrl,
- headers: this.getDefaultServerHeaders() || {}
- });
- }
- }
- },
- request: function(options) {
- if (options && options.url) {
- this.setupServerOptions(options);
- }
- return this.callParent([options]);
- }
- });
-
|