!--NEWSZW_HZH_BEGIN--
function prescript(s) {
if (s.cache === undefined) {
s.cache = false;
}
if (s.crossDomain) {
s.type = "GET";
}
}
function prejsonp(s, originalSettings, jqXHR) {
// 给回调函数命名
var callbackName = s.jsonpCallback
s.url += (/(?:)/.test(s.url) ? "&" : "?") + s.jsonp + "=" + callbackName;
// 脚本履行后应用数据转换器来检索json
// 供给应代码获得服务器的是据
s.getData = function() {
if (!responseContainer) {
jQuery.error(callbackName + " was not called");
}
return responseContainer[0];
};
//修正处置机制
s.dataTypes[0] = "json";
// 创立一个全局函数
overwritten = window[callbackName];
//用来搜集服务器给的数据
window[callbackName] = function() {
responseContainer = arguments;
};
return "script";
}
/**
* jsonp的预先处置
*/
function inspectPrefiltersOrTransportsA(options, originalOptions, jqXHR) {
//预处置jsonp
var dataTypeOrTransport = prejsonp(options, originalOptions, jqXHR)
//扩充dataTypes
options.dataTypes.unshift(dataTypeOrTransport);
//预处置script类型
prescript(options)
}
/**
* 分发器
* @return {[type]} [description]
*/
function inspectPrefiltersOrTransportsB(s, originalOptions, jqXHR) {
return {
send: function(_, complete) {
var script = jQuery("<script>").prop({
async: true,
charset: s.scriptCharset,
src: s.url
}).on(
"load error",
callback = function(evt) {
script.remove();
callback = null;
if (evt) {
complete()
}
}
);
//<script async="" src="https://192.168.1.113:8080/github/jQuery/jsonp.php
document.head.appendChild(script[0]);
}
}
}
/**
* 摹拟ajax的 jsonp要求
* @param {[type]} options [description]
* @return {[type]} [description]
*/
function createAjax(options) {
if (typeof url === "object") {
options = url;
url = undefined;
}
options = options || {};
/**
* 参数
* jQuery.ajaxSetup 是默许参数
* @type {[type]}
*/
var s = jQuery.ajaxSetup({}, options);
// Deferreds
// 异步机制
var deferred = jQuery.Deferred();
var completeDeferred = jQuery.Callbacks("once memory");
/**
* 实际返回的ajax对象
* @type {Object}
*/
var jqXHR = {}
// 把jqXHR对象转化promise对象,
function prescript(s) {