PageSourceSearch

https://www.ppzhan.com/NewShowStand/ajax/common.ashx

js ppzhan.com collected 2026-10-07 22:50:59 UTC 2,991 bytes, 159 lines download raw bytes

1var requests = new Array();
2
3if(typeof(XMLHttpRequest) == 'undefined')
4var XMLHttpRequest = function()
5{
6	var request = null;
7	try
8	{
9		request = new ActiveXObject('Msxml2.XMLHTTP');
10	}
11	catch(e)
12	{
13		try
14		{
15			request = new ActiveXObject('Microsoft.XMLHTTP');
16		}
17		catch(ee)
18		{}
19	}
20	return request;
21}
22
23function ajax_stop()
24{
25	for(var i=0; i<requests.length; i++)
26	{
27		if(requests[i] != null)
28			requests[i].abort();
29	}
30}
31
32function ajax_create_request(context)
33{
34	for(var i=0; i<requests.length; i++)
35	{
36		if(requests[i].readyState == 4)
37		{
38			requests[i].abort();
39			requests[i].context = context;
40			return requests[i];
41		}
42	}
43
44	var pos = requests.length;
45	
46	requests[pos] = Object();
47	requests[pos].obj = new XMLHttpRequest();
48	requests[pos].context = context;
49	
50	return requests[pos];
51}
52
53function ajax_request(url, data, callback, context)
54{
55	var request = ajax_create_request(context);
56	var async = typeof(callback) == 'function';
57
58	if(async) request.obj.onreadystatechange = function()
59	{
60		if(request.obj.readyState == 4)
61			callback(new ajax_response(request));
62	}
63	
64	request.obj.open('POST', url, async);
65	request.obj.send(data);
66	
67	if(!async)
68		return new ajax_response(request);
69}
70
71function ajax_response(request)
72{
73	this.request = request.obj;
74	this.error = null;
75	this.value = null;
76	this.context = request.context;
77	
78	if(request.obj.status == 200)
79	{
80		try
81		{
82			this.value = object_from_json(request);
83			
84			if(this.value && this.value.error)
85			{
86				this.error = this.value.error;
87				this.value = null;
88			}
89		}
90		catch(e)
91		{
92			this.error = new ajax_error(e.name, e.description, e.number);
93		}
94	}
95	else
96	{
97		this.error = new ajax_error('HTTP request failed with status: ' + request.obj.status, request.obj.status);
98	}
99	
100	return this;
101}
102
103function enc(s)
104{
105	return s.toString().replace(/\%/g, "%26").replace(/=/g, "%3D");
106}
107
108function object_from_json(request)
109{
110	if(request.obj.responseXML != null && request.obj.responseXML.xml != null && request.obj.responseXML.xml != '')
111		return request.obj.responseXML;
112	
113	var r = null;	
114	eval('r=' + request.obj.responseText + ';');
115	return r;
116}
117
118function ajax_error(name, description, number)
119{
120	this.name = name;
121	this.description = description;
122	this.number = number;
123
124	return this;
125}
126
127ajax_error.prototype.toString = function()
128{
129	return this.name + " " + this.description;
130}
131
132function json_from_object(o)
133{
134	if(o == null)
135		return 'null';
136
137	switch(typeof(o))
138	{
139		case 'object':
140			if(o.constructor == Array)		// checks if it is an array [,,,]
141			{
142				var s = '';
143				for(var i=0; i<o.length; ++i)
144				{
145					s += json_from_object(o[i]);
146
147					if(i < o.length -1)
148						s += ',';
149				}
150
151				return '[' + s + ']';
152			}
153			break;
154		case 'string':
155			return '"' + o.replace(/(["\\])/g, '\\$1') + '"';
156		default:
157			return String(o);
158	}
159}var ajaxVersion = '5.7.22.2';

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.