一些自己常用的cdn
1.vue
<script src="http://cdn.bootcss.com/vue/1.0.28-csp/vue.js"></script>
<script src="http://cdn.bootcss.com/vue/2.1.10/vue.js"></script>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
一个vue-resource的代码版本:0.7
/**
* vue-resource v0.7.0
* https://github.com/vuejs/vue-resource
* Released under the MIT License.
*/ (function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["VueResource"] = factory();
else
root["VueResource"] = factory();
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {}; /******/ // The require function
/******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ }; /******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded
/******/ module.loaded = true; /******/ // Return the exports of the module
/******/ return module.exports;
/******/ } /******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules; /******/ // expose the module cache
/******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__
/******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) { /**
* Install plugin.
*/ function install(Vue) { var _ = __webpack_require__(1); _.config = Vue.config;
_.warning = Vue.util.warn;
_.nextTick = Vue.util.nextTick; Vue.url = __webpack_require__(2);
Vue.http = __webpack_require__(8);
Vue.resource = __webpack_require__(23);
Vue.Promise = __webpack_require__(10); Object.defineProperties(Vue.prototype, { $url: {
get: function () {
return _.options(Vue.url, this, this.$options.url);
}
}, $http: {
get: function () {
return _.options(Vue.http, this, this.$options.http);
}
}, $resource: {
get: function () {
return Vue.resource.bind(this);
}
}, $promise: {
get: function () {
return function (executor) {
return new Vue.Promise(executor, this);
}.bind(this);
}
} });
} if (window.Vue) {
Vue.use(install);
} module.exports = install; /***/ },
/* 1 */
/***/ function(module, exports) { /**
* Utility functions.
*/ var _ = exports, array = [], console = window.console; _.warn = function (msg) {
if (console && _.warning && (!_.config.silent || _.config.debug)) {
console.warn('[VueResource warn]: ' + msg);
}
}; _.error = function (msg) {
if (console) {
console.error(msg);
}
}; _.trim = function (str) {
return str.replace(/^\s*|\s*$/g, '');
}; _.toLower = function (str) {
return str ? str.toLowerCase() : '';
}; _.isArray = Array.isArray; _.isString = function (val) {
return typeof val === 'string';
}; _.isFunction = function (val) {
return typeof val === 'function';
}; _.isObject = function (obj) {
return obj !== null && typeof obj === 'object';
}; _.isPlainObject = function (obj) {
return _.isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;
}; _.options = function (fn, obj, options) { options = options || {}; if (_.isFunction(options)) {
options = options.call(obj);
} return _.merge(fn.bind({$vm: obj, $options: options}), fn, {$options: options});
}; _.each = function (obj, iterator) { var i, key; if (typeof obj.length == 'number') {
for (i = 0; i < obj.length; i++) {
iterator.call(obj[i], obj[i], i);
}
} else if (_.isObject(obj)) {
for (key in obj) {
if (obj.hasOwnProperty(key)) {
iterator.call(obj[key], obj[key], key);
}
}
} return obj;
}; _.defaults = function (target, source) { for (var key in source) {
if (target[key] === undefined) {
target[key] = source[key];
}
} return target;
}; _.extend = function (target) { var args = array.slice.call(arguments, 1); args.forEach(function (arg) {
merge(target, arg);
}); return target;
}; _.merge = function (target) { var args = array.slice.call(arguments, 1); args.forEach(function (arg) {
merge(target, arg, true);
}); return target;
}; function merge(target, source, deep) {
for (var key in source) {
if (deep && (_.isPlainObject(source[key]) || _.isArray(source[key]))) {
if (_.isPlainObject(source[key]) && !_.isPlainObject(target[key])) {
target[key] = {};
}
if (_.isArray(source[key]) && !_.isArray(target[key])) {
target[key] = [];
}
merge(target[key], source[key], deep);
} else if (source[key] !== undefined) {
target[key] = source[key];
}
}
} /***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) { /**
* Service for URL templating.
*/ var _ = __webpack_require__(1);
var ie = document.documentMode;
var el = document.createElement('a'); function Url(url, params) { var options = url, transform; if (_.isString(url)) {
options = {url: url, params: params};
} options = _.merge({}, Url.options, this.$options, options); Url.transforms.forEach(function (handler) {
transform = factory(handler, transform, this.$vm);
}, this); return transform(options);
}; /**
* Url options.
*/ Url.options = {
url: '',
root: null,
params: {}
}; /**
* Url transforms.
*/ Url.transforms = [
__webpack_require__(3),
__webpack_require__(5),
__webpack_require__(6),
__webpack_require__(7)
]; /**
* Encodes a Url parameter string.
*
* @param {Object} obj
*/ Url.params = function (obj) { var params = [], escape = encodeURIComponent; params.add = function (key, value) { if (_.isFunction(value)) {
value = value();
} if (value === null) {
value = '';
} this.push(escape(key) + '=' + escape(value));
}; serialize(params, obj); return params.join('&').replace(/%20/g, '+');
}; /**
* Parse a URL and return its components.
*
* @param {String} url
*/ Url.parse = function (url) { if (ie) {
el.href = url;
url = el.href;
} el.href = url; return {
href: el.href,
protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',
port: el.port,
host: el.host,
hostname: el.hostname,
pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,
search: el.search ? el.search.replace(/^\?/, '') : '',
hash: el.hash ? el.hash.replace(/^#/, '') : ''
};
}; function factory(handler, next, vm) {
return function (options) {
return handler.call(vm, options, next);
};
} function serialize(params, obj, scope) { var array = _.isArray(obj), plain = _.isPlainObject(obj), hash; _.each(obj, function (value, key) { hash = _.isObject(value) || _.isArray(value); if (scope) {
key = scope + '[' + (plain || hash ? key : '') + ']';
} if (!scope && array) {
params.add(value.name, value.value);
} else if (hash) {
serialize(params, value, key);
} else {
params.add(key, value);
}
});
} module.exports = _.url = Url; /***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) { /**
* URL Template (RFC 6570) Transform.
*/ var UrlTemplate = __webpack_require__(4); module.exports = function (options) { var variables = [], url = UrlTemplate.expand(options.url, options.params, variables); variables.forEach(function (key) {
delete options.params[key];
}); return url;
}; /***/ },
/* 4 */
/***/ function(module, exports) { /**
* URL Template v2.0.6 (https://github.com/bramstein/url-template)
*/ exports.expand = function (url, params, variables) { var tmpl = this.parse(url), expanded = tmpl.expand(params); if (variables) {
variables.push.apply(variables, tmpl.vars);
} return expanded;
}; exports.parse = function (template) { var operators = ['+', '#', '.', '/', ';', '?', '&'], variables = []; return {
vars: variables,
expand: function (context) {
return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) {
if (expression) { var operator = null, values = []; if (operators.indexOf(expression.charAt(0)) !== -1) {
operator = expression.charAt(0);
expression = expression.substr(1);
} expression.split(/,/g).forEach(function (variable) {
var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
values.push.apply(values, exports.getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
variables.push(tmp[1]);
}); if (operator && operator !== '+') { var separator = ','; if (operator === '?') {
separator = '&';
} else if (operator !== '#') {
separator = operator;
} return (values.length !== 0 ? operator : '') + values.join(separator);
} else {
return values.join(',');
} } else {
return exports.encodeReserved(literal);
}
});
}
};
}; exports.getValues = function (context, operator, key, modifier) { var value = context[key], result = []; if (this.isDefined(value) && value !== '') {
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
value = value.toString(); if (modifier && modifier !== '*') {
value = value.substring(0, parseInt(modifier, 10));
} result.push(this.encodeValue(operator, value, this.isKeyOperator(operator) ? key : null));
} else {
if (modifier === '*') {
if (Array.isArray(value)) {
value.filter(this.isDefined).forEach(function (value) {
result.push(this.encodeValue(operator, value, this.isKeyOperator(operator) ? key : null));
}, this);
} else {
Object.keys(value).forEach(function (k) {
if (this.isDefined(value[k])) {
result.push(this.encodeValue(operator, value[k], k));
}
}, this);
}
} else {
var tmp = []; if (Array.isArray(value)) {
value.filter(this.isDefined).forEach(function (value) {
tmp.push(this.encodeValue(operator, value));
}, this);
} else {
Object.keys(value).forEach(function (k) {
if (this.isDefined(value[k])) {
tmp.push(encodeURIComponent(k));
tmp.push(this.encodeValue(operator, value[k].toString()));
}
}, this);
} if (this.isKeyOperator(operator)) {
result.push(encodeURIComponent(key) + '=' + tmp.join(','));
} else if (tmp.length !== 0) {
result.push(tmp.join(','));
}
}
}
} else {
if (operator === ';') {
result.push(encodeURIComponent(key));
} else if (value === '' && (operator === '&' || operator === '?')) {
result.push(encodeURIComponent(key) + '=');
} else if (value === '') {
result.push('');
}
} return result;
}; exports.isDefined = function (value) {
return value !== undefined && value !== null;
}; exports.isKeyOperator = function (operator) {
return operator === ';' || operator === '&' || operator === '?';
}; exports.encodeValue = function (operator, value, key) { value = (operator === '+' || operator === '#') ? this.encodeReserved(value) : encodeURIComponent(value); if (key) {
return encodeURIComponent(key) + '=' + value;
} else {
return value;
}
}; exports.encodeReserved = function (str) {
return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {
if (!/%[0-9A-Fa-f]/.test(part)) {
part = encodeURI(part);
}
return part;
}).join('');
}; /***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) { /**
* Legacy Transform.
*/ var _ = __webpack_require__(1); module.exports = function (options, next) { var variables = [], url = next(options); url = url.replace(/(\/?):([a-z]\w*)/gi, function (match, slash, name) { _.warn('The `:' + name + '` parameter syntax has been deprecated. Use the `{' + name + '}` syntax instead.'); if (options.params[name]) {
variables.push(name);
return slash + encodeUriSegment(options.params[name]);
} return '';
}); variables.forEach(function (key) {
delete options.params[key];
}); return url;
}; function encodeUriSegment(value) { return encodeUriQuery(value, true).
replace(/%26/gi, '&').
replace(/%3D/gi, '=').
replace(/%2B/gi, '+');
} function encodeUriQuery(value, spaces) { return encodeURIComponent(value).
replace(/%40/gi, '@').
replace(/%3A/gi, ':').
replace(/%24/g, '$').
replace(/%2C/gi, ',').
replace(/%20/g, (spaces ? '%20' : '+'));
} /***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) { /**
* Query Parameter Transform.
*/ var _ = __webpack_require__(1); module.exports = function (options, next) { var urlParams = Object.keys(_.url.options.params), query = {}, url = next(options); _.each(options.params, function (value, key) {
if (urlParams.indexOf(key) === -1) {
query[key] = value;
}
}); query = _.url.params(query); if (query) {
url += (url.indexOf('?') == -1 ? '?' : '&') + query;
} return url;
}; /***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) { /**
* Root Prefix Transform.
*/ var _ = __webpack_require__(1); module.exports = function (options, next) { var url = next(options); if (_.isString(options.root) && !url.match(/^(https?:)?\//)) {
url = options.root + '/' + url;
} return url;
}; /***/ },
/* 8 */
/***/ function(module, exports, __webpack_require__) { /**
* Service for sending network requests.
*/ var _ = __webpack_require__(1);
var Client = __webpack_require__(9);
var Promise = __webpack_require__(10);
var interceptor = __webpack_require__(13);
var jsonType = {'Content-Type': 'application/json'}; function Http(url, options) { var client = Client, request, promise; Http.interceptors.forEach(function (handler) {
client = interceptor(handler, this.$vm)(client);
}, this); options = _.isObject(url) ? url : _.extend({url: url}, options);
request = _.merge({}, Http.options, this.$options, options);
promise = client(request).bind(this.$vm).then(function (response) { return response.ok ? response : Promise.reject(response); }, function (response) { if (response instanceof Error) {
_.error(response);
} return Promise.reject(response);
}); if (request.success) {
promise.success(request.success);
} if (request.error) {
promise.error(request.error);
} return promise;
} Http.options = {
method: 'get',
data: '',
params: {},
headers: {},
xhr: null,
upload: null,
jsonp: 'callback',
beforeSend: null,
crossOrigin: null,
emulateHTTP: false,
emulateJSON: false,
timeout: 0
}; Http.interceptors = [
__webpack_require__(14),
__webpack_require__(15),
__webpack_require__(16),
__webpack_require__(18),
__webpack_require__(19),
__webpack_require__(20),
__webpack_require__(21)
]; Http.headers = {
put: jsonType,
post: jsonType,
patch: jsonType,
delete: jsonType,
common: {'Accept': 'application/json, text/plain, */*'},
custom: {'X-Requested-With': 'XMLHttpRequest'}
}; ['get', 'put', 'post', 'patch', 'delete', 'jsonp'].forEach(function (method) { Http[method] = function (url, data, success, options) { if (_.isFunction(data)) {
options = success;
success = data;
data = undefined;
} if (_.isObject(success)) {
options = success;
success = undefined;
} return this(url, _.extend({method: method, data: data, success: success}, options));
};
}); module.exports = _.http = Http; /***/ },
/* 9 */
/***/ function(module, exports, __webpack_require__) { /**
* Base client.
*/ var _ = __webpack_require__(1);
var Promise = __webpack_require__(10);
var xhrClient = __webpack_require__(12); module.exports = function (request) { var response = (request.client || xhrClient)(request); return Promise.resolve(response).then(function (response) { if (response.headers) { var headers = parseHeaders(response.headers); response.headers = function (name) { if (name) {
return headers[_.toLower(name)];
} return headers;
}; } response.ok = response.status >= 200 && response.status < 300; return response;
}); }; function parseHeaders(str) { var headers = {}, value, name, i; if (_.isString(str)) {
_.each(str.split('\n'), function (row) { i = row.indexOf(':');
name = _.trim(_.toLower(row.slice(0, i)));
value = _.trim(row.slice(i + 1)); if (headers[name]) { if (_.isArray(headers[name])) {
headers[name].push(value);
} else {
headers[name] = [headers[name], value];
} } else { headers[name] = value;
} });
} return headers;
} /***/ },
/* 10 */
/***/ function(module, exports, __webpack_require__) { /**
* Promise adapter.
*/ var _ = __webpack_require__(1);
var PromiseObj = window.Promise || __webpack_require__(11); function Promise(executor, context) { if (executor instanceof PromiseObj) {
this.promise = executor;
} else {
this.promise = new PromiseObj(executor.bind(context));
} this.context = context;
} Promise.all = function (iterable, context) {
return new Promise(PromiseObj.all(iterable), context);
}; Promise.resolve = function (value, context) {
return new Promise(PromiseObj.resolve(value), context);
}; Promise.reject = function (reason, context) {
return new Promise(PromiseObj.reject(reason), context);
}; Promise.race = function (iterable, context) {
return new Promise(PromiseObj.race(iterable), context);
}; var p = Promise.prototype; p.bind = function (context) {
this.context = context;
return this;
}; p.then = function (fulfilled, rejected) { if (fulfilled && fulfilled.bind && this.context) {
fulfilled = fulfilled.bind(this.context);
} if (rejected && rejected.bind && this.context) {
rejected = rejected.bind(this.context);
} this.promise = this.promise.then(fulfilled, rejected); return this;
}; p.catch = function (rejected) { if (rejected && rejected.bind && this.context) {
rejected = rejected.bind(this.context);
} this.promise = this.promise.catch(rejected); return this;
}; p.finally = function (callback) { return this.then(function (value) {
callback.call(this);
return value;
}, function (reason) {
callback.call(this);
return PromiseObj.reject(reason);
}
);
}; p.success = function (callback) { _.warn('The `success` method has been deprecated. Use the `then` method instead.'); return this.then(function (response) {
return callback.call(this, response.data, response.status, response) || response;
});
}; p.error = function (callback) { _.warn('The `error` method has been deprecated. Use the `catch` method instead.'); return this.catch(function (response) {
return callback.call(this, response.data, response.status, response) || response;
});
}; p.always = function (callback) { _.warn('The `always` method has been deprecated. Use the `finally` method instead.'); var cb = function (response) {
return callback.call(this, response.data, response.status, response) || response;
}; return this.then(cb, cb);
}; module.exports = Promise; /***/ },
/* 11 */
/***/ function(module, exports, __webpack_require__) { /**
* Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
*/ var _ = __webpack_require__(1); var RESOLVED = 0;
var REJECTED = 1;
var PENDING = 2; function Promise(executor) { this.state = PENDING;
this.value = undefined;
this.deferred = []; var promise = this; try {
executor(function (x) {
promise.resolve(x);
}, function (r) {
promise.reject(r);
});
} catch (e) {
promise.reject(e);
}
} Promise.reject = function (r) {
return new Promise(function (resolve, reject) {
reject(r);
});
}; Promise.resolve = function (x) {
return new Promise(function (resolve, reject) {
resolve(x);
});
}; Promise.all = function all(iterable) {
return new Promise(function (resolve, reject) {
var count = 0, result = []; if (iterable.length === 0) {
resolve(result);
} function resolver(i) {
return function (x) {
result[i] = x;
count += 1; if (count === iterable.length) {
resolve(result);
}
};
} for (var i = 0; i < iterable.length; i += 1) {
Promise.resolve(iterable[i]).then(resolver(i), reject);
}
});
}; Promise.race = function race(iterable) {
return new Promise(function (resolve, reject) {
for (var i = 0; i < iterable.length; i += 1) {
Promise.resolve(iterable[i]).then(resolve, reject);
}
});
}; var p = Promise.prototype; p.resolve = function resolve(x) {
var promise = this; if (promise.state === PENDING) {
if (x === promise) {
throw new TypeError('Promise settled with itself.');
} var called = false; try {
var then = x && x['then']; if (x !== null && typeof x === 'object' && typeof then === 'function') {
then.call(x, function (x) {
if (!called) {
promise.resolve(x);
}
called = true; }, function (r) {
if (!called) {
promise.reject(r);
}
called = true;
});
return;
}
} catch (e) {
if (!called) {
promise.reject(e);
}
return;
} promise.state = RESOLVED;
promise.value = x;
promise.notify();
}
}; p.reject = function reject(reason) {
var promise = this; if (promise.state === PENDING) {
if (reason === promise) {
throw new TypeError('Promise settled with itself.');
} promise.state = REJECTED;
promise.value = reason;
promise.notify();
}
}; p.notify = function notify() {
var promise = this; _.nextTick(function () {
if (promise.state !== PENDING) {
while (promise.deferred.length) {
var deferred = promise.deferred.shift(),
onResolved = deferred[0],
onRejected = deferred[1],
resolve = deferred[2],
reject = deferred[3]; try {
if (promise.state === RESOLVED) {
if (typeof onResolved === 'function') {
resolve(onResolved.call(undefined, promise.value));
} else {
resolve(promise.value);
}
} else if (promise.state === REJECTED) {
if (typeof onRejected === 'function') {
resolve(onRejected.call(undefined, promise.value));
} else {
reject(promise.value);
}
}
} catch (e) {
reject(e);
}
}
}
});
}; p.then = function then(onResolved, onRejected) {
var promise = this; return new Promise(function (resolve, reject) {
promise.deferred.push([onResolved, onRejected, resolve, reject]);
promise.notify();
});
}; p.catch = function (onRejected) {
return this.then(undefined, onRejected);
}; module.exports = Promise; /***/ },
/* 12 */
/***/ function(module, exports, __webpack_require__) { /**
* XMLHttp client.
*/ var _ = __webpack_require__(1);
var Promise = __webpack_require__(10); module.exports = function (request) {
return new Promise(function (resolve) { var xhr = new XMLHttpRequest(), response = {request: request}, handler; request.cancel = function () {
xhr.abort();
}; xhr.open(request.method, _.url(request), true); handler = function (event) { response.data = xhr.responseText;
response.status = xhr.status;
response.statusText = xhr.statusText;
response.headers = xhr.getAllResponseHeaders(); resolve(response);
}; xhr.timeout = 0;
xhr.onload = handler;
xhr.onabort = handler;
xhr.onerror = handler;
xhr.ontimeout = function () {};
xhr.onprogress = function () {}; if (_.isPlainObject(request.xhr)) {
_.extend(xhr, request.xhr);
} if (_.isPlainObject(request.upload)) {
_.extend(xhr.upload, request.upload);
} _.each(request.headers || {}, function (value, header) {
xhr.setRequestHeader(header, value);
}); xhr.send(request.data);
});
}; /***/ },
/* 13 */
/***/ function(module, exports, __webpack_require__) { /**
* Interceptor factory.
*/ var _ = __webpack_require__(1);
var Promise = __webpack_require__(10); module.exports = function (handler, vm) { return function (client) { if (_.isFunction(handler)) {
handler = handler.call(vm, Promise);
} return function (request) { if (_.isFunction(handler.request)) {
request = handler.request.call(vm, request);
} return when(request, function (request) {
return when(client(request), function (response) { if (_.isFunction(handler.response)) {
response = handler.response.call(vm, response);
} return response;
});
});
};
};
}; function when(value, fulfilled, rejected) { var promise = Promise.resolve(value); if (arguments.length < 2) {
return promise;
} return promise.then(fulfilled, rejected);
} /***/ },
/* 14 */
/***/ function(module, exports, __webpack_require__) { /**
* Before Interceptor.
*/ var _ = __webpack_require__(1); module.exports = { request: function (request) { if (_.isFunction(request.beforeSend)) {
request.beforeSend.call(this, request);
} return request;
} }; /***/ },
/* 15 */
/***/ function(module, exports) { /**
* Timeout Interceptor.
*/ module.exports = function () { var timeout; return { request: function (request) { if (request.timeout) {
timeout = setTimeout(function () {
request.cancel();
}, request.timeout);
} return request;
}, response: function (response) { clearTimeout(timeout); return response;
} };
}; /***/ },
/* 16 */
/***/ function(module, exports, __webpack_require__) { /**
* JSONP Interceptor.
*/ var jsonpClient = __webpack_require__(17); module.exports = { request: function (request) { if (request.method == 'JSONP') {
request.client = jsonpClient;
} return request;
} }; /***/ },
/* 17 */
/***/ function(module, exports, __webpack_require__) { /**
* JSONP client.
*/ var _ = __webpack_require__(1);
var Promise = __webpack_require__(10); module.exports = function (request) {
return new Promise(function (resolve) { var callback = '_jsonp' + Math.random().toString(36).substr(2), response = {request: request, data: null}, handler, script; request.params[request.jsonp] = callback;
request.cancel = function () {
handler({type: 'cancel'});
}; script = document.createElement('script');
script.src = _.url(request);
script.type = 'text/javascript';
script.async = true; window[callback] = function (data) {
response.data = data;
}; handler = function (event) { if (event.type === 'load' && response.data !== null) {
response.status = 200;
} else if (event.type === 'error') {
response.status = 404;
} else {
response.status = 0;
} resolve(response); delete window[callback];
document.body.removeChild(script);
}; script.onload = handler;
script.onerror = handler; document.body.appendChild(script);
});
}; /***/ },
/* 18 */
/***/ function(module, exports) { /**
* HTTP method override Interceptor.
*/ module.exports = { request: function (request) { if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {
request.headers['X-HTTP-Method-Override'] = request.method;
request.method = 'POST';
} return request;
} }; /***/ },
/* 19 */
/***/ function(module, exports, __webpack_require__) { /**
* Mime Interceptor.
*/ var _ = __webpack_require__(1); module.exports = { request: function (request) { if (request.emulateJSON && _.isPlainObject(request.data)) {
request.headers['Content-Type'] = 'application/x-www-form-urlencoded';
request.data = _.url.params(request.data);
} if (_.isObject(request.data) && /FormData/i.test(request.data.toString())) {
delete request.headers['Content-Type'];
} if (_.isPlainObject(request.data)) {
request.data = JSON.stringify(request.data);
} return request;
}, response: function (response) { try {
response.data = JSON.parse(response.data);
} catch (e) {} return response;
} }; /***/ },
/* 20 */
/***/ function(module, exports, __webpack_require__) { /**
* Header Interceptor.
*/ var _ = __webpack_require__(1); module.exports = { request: function (request) { request.method = request.method.toUpperCase();
request.headers = _.extend({}, _.http.headers.common,
!request.crossOrigin ? _.http.headers.custom : {},
_.http.headers[request.method.toLowerCase()],
request.headers
); if (_.isPlainObject(request.data) && /^(GET|JSONP)$/i.test(request.method)) {
_.extend(request.params, request.data);
delete request.data;
} return request;
} }; /***/ },
/* 21 */
/***/ function(module, exports, __webpack_require__) { /**
* CORS Interceptor.
*/ var _ = __webpack_require__(1);
var xdrClient = __webpack_require__(22);
var xhrCors = 'withCredentials' in new XMLHttpRequest();
var originUrl = _.url.parse(location.href); module.exports = { request: function (request) { if (request.crossOrigin === null) {
request.crossOrigin = crossOrigin(request);
} if (request.crossOrigin) { if (!xhrCors) {
request.client = xdrClient;
} request.emulateHTTP = false;
} return request;
} }; function crossOrigin(request) { var requestUrl = _.url.parse(_.url(request)); return (requestUrl.protocol !== originUrl.protocol || requestUrl.host !== originUrl.host);
} /***/ },
/* 22 */
/***/ function(module, exports, __webpack_require__) { /**
* XDomain client (Internet Explorer).
*/ var _ = __webpack_require__(1);
var Promise = __webpack_require__(10); module.exports = function (request) {
return new Promise(function (resolve) { var xdr = new XDomainRequest(), response = {request: request}, handler; request.cancel = function () {
xdr.abort();
}; xdr.open(request.method, _.url(request), true); handler = function (event) { response.data = xdr.responseText;
response.status = xdr.status;
response.statusText = xdr.statusText; resolve(response);
}; xdr.timeout = 0;
xdr.onload = handler;
xdr.onabort = handler;
xdr.onerror = handler;
xdr.ontimeout = function () {};
xdr.onprogress = function () {}; xdr.send(request.data);
});
}; /***/ },
/* 23 */
/***/ function(module, exports, __webpack_require__) { /**
* Service for interacting with RESTful services.
*/ var _ = __webpack_require__(1); function Resource(url, params, actions, options) { var self = this, resource = {}; actions = _.extend({},
Resource.actions,
actions
); _.each(actions, function (action, name) { action = _.merge({url: url, params: params || {}}, options, action); resource[name] = function () {
return (self.$http || _.http)(opts(action, arguments));
};
}); return resource;
} function opts(action, args) { var options = _.extend({}, action), params = {}, data, success, error; switch (args.length) { case 4: error = args[3];
success = args[2]; case 3:
case 2: if (_.isFunction(args[1])) { if (_.isFunction(args[0])) { success = args[0];
error = args[1]; break;
} success = args[1];
error = args[2]; } else { params = args[0];
data = args[1];
success = args[2]; break;
} case 1: if (_.isFunction(args[0])) {
success = args[0];
} else if (/^(POST|PUT|PATCH)$/i.test(options.method)) {
data = args[0];
} else {
params = args[0];
} break; case 0: break; default: throw 'Expected up to 4 arguments [params, data, success, error], got ' + args.length + ' arguments';
} options.data = data;
options.params = _.extend({}, options.params, params); if (success) {
options.success = success;
} if (error) {
options.error = error;
} return options;
} Resource.actions = { get: {method: 'GET'},
save: {method: 'POST'},
query: {method: 'GET'},
update: {method: 'PUT'},
remove: {method: 'DELETE'},
delete: {method: 'DELETE'} }; module.exports = _.resource = Resource; /***/ }
/******/ ])
});
;
一些自己常用的cdn的更多相关文章
- 收集一些常用的CDN链接!无需下载快速使用!
一些常用的CDN链接,可以到这里看: http://www.bootcdn.cn/ 这个网站查找资源的方式很简单,后缀加上要查找的名字即可: 例如: http://www.bootcdn.cn/boo ...
- cdn_一些常用的cdn地址
https://code.jquery.com/jquery-3.3.1.jshttps://cdn.bootcss.com/jquery/2.1.4/jquery.min.js https://cd ...
- 常用的CDN 链接 http://cdn.code.baidu.com/ http://www.bootcdn.cn/
http://cdn.code.baidu.com/ http://developer.baidu.com/wiki/index.php?title=docs/cplat/libs ★新浪CDN,感觉 ...
- 各种常用的CDN加速服务
各种CDN加速网址:点击此处 1.Echar <script type="text/javascript" src="http://echarts.baidu.co ...
- 一些常用的CDN列表
Microsoft Ajax Content Delivery Network 点击查看详细列表
- 前端公共库cdn服务推荐//提高加载速度/节省流量
前端公共库cdn服务推荐,使用可以提高js库加载速度同时也可以节省自己空间的流量,CDN加速公共库虽好,不过一定要使用靠谱的前端cdn服务提供方. 以下整理出比较靠谱的国内cdn加速服务器.排名不分先 ...
- 5个可用提高Godaddy主机速度的第三方CDN加速服务商
毕竟Godaddy主机数据中心位于美国.新加坡.欧洲三个数据中心,一般我们都会选择美国数据中心,相比较其他2个机房的速度是快和稳定的,很多人要说为什么新加坡数据中心速度不好呢?因为目前的新加坡机房不是 ...
- 从cdn说起
为什么要使用cdn 雅虎军规有一条规则建议我们是用cdn.随便在网上搜索,可以找到使用的cdn的好处. 再次强调第一条黄金定律,减少网页内容的下载时间.提高下载速度还可以通过CDN(内容分发网络)来提 ...
- 最全免费CDN公共库——网站提速
开源静态文件 CDN 我们的目标是提供这样一个仓库,让它尽可能全面收录优秀的开源库,并免费为之提供 CDN 加速服务,使之有更好的访问速度和稳定的环境.同时,我们也提供开源库源接入的入口,让所有人都可 ...
随机推荐
- SpringMVC Controller介绍及常用注解
一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...
- 【巷子】---vue项目打包---基本使用---【vue】
一.基本设置 二.打包 npm run build 三.github创建一个仓库 1.将文件上传至仓库 2.点击仓库设置 3.选择代码上传到master 4.点击地址即可预览 5.常用技巧 a.如果在 ...
- Oracle数据库类型date
date日期类型 说明 oracle dd-mm-yyyy create table test1(birthday date); timestamp(n) 说明:邮戳的时间类型 于date的区别,邮戳 ...
- python设置redis过期时间
import time import redis if __name__ == "__main__": try: conn=redis.StrictRedis(host='192. ...
- MVC项目,bootstrap升级后index.d.ts编译出错
安装最新的Typescript组件 下载链接 https://www.microsoft.com/en-us/download/details.aspx?id=48593
- 如何在linux下安装jdk并运行java程序
一.进入root 大家可以看到我这里用的是CentOS 6.5 系统 二.测试网络与YUM是否可用 1.测试网络 ping www.baidu.com,如下图就是通了 参考: 一.JDK安装1.lin ...
- Spark 参数配置的几种方法
1.Spark 属性Spark应用程序的运行是通过外部参数来控制的,参数的设置正确与否,好与坏会直接影响应用程序的性能,也就影响我们整个集群的性能.参数控制有以下方式:(1)直接设置在SparkCon ...
- Windows7系统运行hadoop报Failed to locate the winutils binary in the hadoop binary path错误
程序运行的过程中,报Failed to locate the winutils binary in the hadoop binary path Java.io.IOException: Could ...
- [ABP项目实战]-后台管理系统-目录
学习ABP也有一段时间了,但是总是学习了后面的忘记了前面的,为了巩固所学到的知识以及记录所学到的东西,因此有了本系列的诞生. ABP ASP.NET Boilerplate Project(ABP.N ...
- JDK eclipse selenium的安装以及环境变量的配置
未经允许,禁止转载!!! 未经允许,禁止转载!!! 首先下载安装JDK: 然后双击进行安装 选着第一个:开发工具!点击next 一定要记住:Install to: C:\Program Files\ ...