├── .gitignore ├── README.md ├── auto.py ├── server.py └── hook.js /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | *.pyc 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AjaxHookSpider 2 | Ajax Hook Demo 3 | -------------------------------------------------------------------------------- /auto.py: -------------------------------------------------------------------------------- 1 | from selenium import webdriver 2 | import time 3 | 4 | browser = webdriver.Chrome() 5 | browser.get('https://dynamic6.scrape.center/') 6 | browser.execute_script(open('hook.js').read()) 7 | time.sleep(2) 8 | 9 | for index in range(10): 10 | print('current page', index) 11 | btn_next = browser.find_element_by_css_selector('.btn-next') 12 | btn_next.click() 13 | time.sleep(2) 14 | -------------------------------------------------------------------------------- /server.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | from flask import Flask, request, jsonify 4 | from flask_cors import CORS 5 | 6 | app = Flask(__name__) 7 | CORS(app) 8 | 9 | 10 | @app.route('/receiver/movie', methods=['POST']) 11 | def receive(): 12 | content = json.loads(request.data) 13 | print(content) 14 | # to something 15 | return jsonify({'status': True}) 16 | 17 | 18 | if __name__ == '__main__': 19 | app.run(host='0.0.0.0', port=80, debug=True) 20 | -------------------------------------------------------------------------------- /hook.js: -------------------------------------------------------------------------------- 1 | /* axios v0.19.2 | (c) 2020 by Matt Zabriskie */ 2 | !function (e, t) { 3 | "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.axios = t() : e.axios = t() 4 | }(this, function () { 5 | return function (e) { 6 | function t(r) { 7 | if (n[r]) return n[r].exports; 8 | var o = n[r] = {exports: {}, id: r, loaded: !1}; 9 | return e[r].call(o.exports, o, o.exports, t), o.loaded = !0, o.exports 10 | } 11 | 12 | var n = {}; 13 | return t.m = e, t.c = n, t.p = "", t(0) 14 | }([function (e, t, n) { 15 | e.exports = n(1) 16 | }, function (e, t, n) { 17 | "use strict"; 18 | 19 | function r(e) { 20 | var t = new s(e), n = i(s.prototype.request, t); 21 | return o.extend(n, s.prototype, t), o.extend(n, t), n 22 | } 23 | 24 | var o = n(2), i = n(3), s = n(4), a = n(22), u = n(10), c = r(u); 25 | c.Axios = s, c.create = function (e) { 26 | return r(a(c.defaults, e)) 27 | }, c.Cancel = n(23), c.CancelToken = n(24), c.isCancel = n(9), c.all = function (e) { 28 | return Promise.all(e) 29 | }, c.spread = n(25), e.exports = c, e.exports.default = c 30 | }, function (e, t, n) { 31 | "use strict"; 32 | 33 | function r(e) { 34 | return "[object Array]" === j.call(e) 35 | } 36 | 37 | function o(e) { 38 | return "undefined" == typeof e 39 | } 40 | 41 | function i(e) { 42 | return null !== e && !o(e) && null !== e.constructor && !o(e.constructor) && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) 43 | } 44 | 45 | function s(e) { 46 | return "[object ArrayBuffer]" === j.call(e) 47 | } 48 | 49 | function a(e) { 50 | return "undefined" != typeof FormData && e instanceof FormData 51 | } 52 | 53 | function u(e) { 54 | var t; 55 | return t = "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer 56 | } 57 | 58 | function c(e) { 59 | return "string" == typeof e 60 | } 61 | 62 | function f(e) { 63 | return "number" == typeof e 64 | } 65 | 66 | function p(e) { 67 | return null !== e && "object" == typeof e 68 | } 69 | 70 | function d(e) { 71 | return "[object Date]" === j.call(e) 72 | } 73 | 74 | function l(e) { 75 | return "[object File]" === j.call(e) 76 | } 77 | 78 | function h(e) { 79 | return "[object Blob]" === j.call(e) 80 | } 81 | 82 | function m(e) { 83 | return "[object Function]" === j.call(e) 84 | } 85 | 86 | function y(e) { 87 | return p(e) && m(e.pipe) 88 | } 89 | 90 | function g(e) { 91 | return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams 92 | } 93 | 94 | function v(e) { 95 | return e.replace(/^\s*/, "").replace(/\s*$/, "") 96 | } 97 | 98 | function x() { 99 | return ("undefined" == typeof navigator || "ReactNative" !== navigator.product && "NativeScript" !== navigator.product && "NS" !== navigator.product) && ("undefined" != typeof window && "undefined" != typeof document) 100 | } 101 | 102 | function w(e, t) { 103 | if (null !== e && "undefined" != typeof e) if ("object" != typeof e && (e = [e]), r(e)) for (var n = 0, o = e.length; n < o; n++) t.call(null, e[n], n, e); else for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && t.call(null, e[i], i, e) 104 | } 105 | 106 | function b() { 107 | function e(e, n) { 108 | "object" == typeof t[n] && "object" == typeof e ? t[n] = b(t[n], e) : t[n] = e 109 | } 110 | 111 | for (var t = {}, n = 0, r = arguments.length; n < r; n++) w(arguments[n], e); 112 | return t 113 | } 114 | 115 | function E() { 116 | function e(e, n) { 117 | "object" == typeof t[n] && "object" == typeof e ? t[n] = E(t[n], e) : "object" == typeof e ? t[n] = E({}, e) : t[n] = e 118 | } 119 | 120 | for (var t = {}, n = 0, r = arguments.length; n < r; n++) w(arguments[n], e); 121 | return t 122 | } 123 | 124 | function S(e, t, n) { 125 | return w(t, function (t, r) { 126 | n && "function" == typeof t ? e[r] = C(t, n) : e[r] = t 127 | }), e 128 | } 129 | 130 | var C = n(3), j = Object.prototype.toString; 131 | e.exports = { 132 | isArray: r, 133 | isArrayBuffer: s, 134 | isBuffer: i, 135 | isFormData: a, 136 | isArrayBufferView: u, 137 | isString: c, 138 | isNumber: f, 139 | isObject: p, 140 | isUndefined: o, 141 | isDate: d, 142 | isFile: l, 143 | isBlob: h, 144 | isFunction: m, 145 | isStream: y, 146 | isURLSearchParams: g, 147 | isStandardBrowserEnv: x, 148 | forEach: w, 149 | merge: b, 150 | deepMerge: E, 151 | extend: S, 152 | trim: v 153 | } 154 | }, function (e, t) { 155 | "use strict"; 156 | e.exports = function (e, t) { 157 | return function () { 158 | for (var n = new Array(arguments.length), r = 0; r < n.length; r++) n[r] = arguments[r]; 159 | return e.apply(t, n) 160 | } 161 | } 162 | }, function (e, t, n) { 163 | "use strict"; 164 | 165 | function r(e) { 166 | this.defaults = e, this.interceptors = {request: new s, response: new s} 167 | } 168 | 169 | var o = n(2), i = n(5), s = n(6), a = n(7), u = n(22); 170 | r.prototype.request = function (e) { 171 | "string" == typeof e ? (e = arguments[1] || {}, e.url = arguments[0]) : e = e || {}, e = u(this.defaults, e), e.method ? e.method = e.method.toLowerCase() : this.defaults.method ? e.method = this.defaults.method.toLowerCase() : e.method = "get"; 172 | var t = [a, void 0], n = Promise.resolve(e); 173 | for (this.interceptors.request.forEach(function (e) { 174 | t.unshift(e.fulfilled, e.rejected) 175 | }), this.interceptors.response.forEach(function (e) { 176 | t.push(e.fulfilled, e.rejected) 177 | }); t.length;) n = n.then(t.shift(), t.shift()); 178 | return n 179 | }, r.prototype.getUri = function (e) { 180 | return e = u(this.defaults, e), i(e.url, e.params, e.paramsSerializer).replace(/^\?/, "") 181 | }, o.forEach(["delete", "get", "head", "options"], function (e) { 182 | r.prototype[e] = function (t, n) { 183 | return this.request(o.merge(n || {}, {method: e, url: t})) 184 | } 185 | }), o.forEach(["post", "put", "patch"], function (e) { 186 | r.prototype[e] = function (t, n, r) { 187 | return this.request(o.merge(r || {}, {method: e, url: t, data: n})) 188 | } 189 | }), e.exports = r 190 | }, function (e, t, n) { 191 | "use strict"; 192 | 193 | function r(e) { 194 | return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") 195 | } 196 | 197 | var o = n(2); 198 | e.exports = function (e, t, n) { 199 | if (!t) return e; 200 | var i; 201 | if (n) i = n(t); else if (o.isURLSearchParams(t)) i = t.toString(); else { 202 | var s = []; 203 | o.forEach(t, function (e, t) { 204 | null !== e && "undefined" != typeof e && (o.isArray(e) ? t += "[]" : e = [e], o.forEach(e, function (e) { 205 | o.isDate(e) ? e = e.toISOString() : o.isObject(e) && (e = JSON.stringify(e)), s.push(r(t) + "=" + r(e)) 206 | })) 207 | }), i = s.join("&") 208 | } 209 | if (i) { 210 | var a = e.indexOf("#"); 211 | a !== -1 && (e = e.slice(0, a)), e += (e.indexOf("?") === -1 ? "?" : "&") + i 212 | } 213 | return e 214 | } 215 | }, function (e, t, n) { 216 | "use strict"; 217 | 218 | function r() { 219 | this.handlers = [] 220 | } 221 | 222 | var o = n(2); 223 | r.prototype.use = function (e, t) { 224 | return this.handlers.push({fulfilled: e, rejected: t}), this.handlers.length - 1 225 | }, r.prototype.eject = function (e) { 226 | this.handlers[e] && (this.handlers[e] = null) 227 | }, r.prototype.forEach = function (e) { 228 | o.forEach(this.handlers, function (t) { 229 | null !== t && e(t) 230 | }) 231 | }, e.exports = r 232 | }, function (e, t, n) { 233 | "use strict"; 234 | 235 | function r(e) { 236 | e.cancelToken && e.cancelToken.throwIfRequested() 237 | } 238 | 239 | var o = n(2), i = n(8), s = n(9), a = n(10); 240 | e.exports = function (e) { 241 | r(e), e.headers = e.headers || {}, e.data = i(e.data, e.headers, e.transformRequest), e.headers = o.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers), o.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function (t) { 242 | delete e.headers[t] 243 | }); 244 | var t = e.adapter || a.adapter; 245 | return t(e).then(function (t) { 246 | return r(e), t.data = i(t.data, t.headers, e.transformResponse), t 247 | }, function (t) { 248 | return s(t) || (r(e), t && t.response && (t.response.data = i(t.response.data, t.response.headers, e.transformResponse))), Promise.reject(t) 249 | }) 250 | } 251 | }, function (e, t, n) { 252 | "use strict"; 253 | var r = n(2); 254 | e.exports = function (e, t, n) { 255 | return r.forEach(n, function (n) { 256 | e = n(e, t) 257 | }), e 258 | } 259 | }, function (e, t) { 260 | "use strict"; 261 | e.exports = function (e) { 262 | return !(!e || !e.__CANCEL__) 263 | } 264 | }, function (e, t, n) { 265 | "use strict"; 266 | 267 | function r(e, t) { 268 | !i.isUndefined(e) && i.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t) 269 | } 270 | 271 | function o() { 272 | var e; 273 | return "undefined" != typeof XMLHttpRequest ? e = n(12) : "undefined" != typeof process && "[object process]" === Object.prototype.toString.call(process) && (e = n(12)), e 274 | } 275 | 276 | var i = n(2), s = n(11), a = {"Content-Type": "application/x-www-form-urlencoded"}, u = { 277 | adapter: o(), 278 | transformRequest: [function (e, t) { 279 | return s(t, "Accept"), s(t, "Content-Type"), i.isFormData(e) || i.isArrayBuffer(e) || i.isBuffer(e) || i.isStream(e) || i.isFile(e) || i.isBlob(e) ? e : i.isArrayBufferView(e) ? e.buffer : i.isURLSearchParams(e) ? (r(t, "application/x-www-form-urlencoded;charset=utf-8"), e.toString()) : i.isObject(e) ? (r(t, "application/json;charset=utf-8"), JSON.stringify(e)) : e 280 | }], 281 | transformResponse: [function (e) { 282 | if ("string" == typeof e) try { 283 | e = JSON.parse(e) 284 | } catch (e) { 285 | } 286 | return e 287 | }], 288 | timeout: 0, 289 | xsrfCookieName: "XSRF-TOKEN", 290 | xsrfHeaderName: "X-XSRF-TOKEN", 291 | maxContentLength: -1, 292 | validateStatus: function (e) { 293 | return e >= 200 && e < 300 294 | } 295 | }; 296 | u.headers = {common: {Accept: "application/json, text/plain, */*"}}, i.forEach(["delete", "get", "head"], function (e) { 297 | u.headers[e] = {} 298 | }), i.forEach(["post", "put", "patch"], function (e) { 299 | u.headers[e] = i.merge(a) 300 | }), e.exports = u 301 | }, function (e, t, n) { 302 | "use strict"; 303 | var r = n(2); 304 | e.exports = function (e, t) { 305 | r.forEach(e, function (n, r) { 306 | r !== t && r.toUpperCase() === t.toUpperCase() && (e[t] = n, delete e[r]) 307 | }) 308 | } 309 | }, function (e, t, n) { 310 | "use strict"; 311 | var r = n(2), o = n(13), i = n(5), s = n(16), a = n(19), u = n(20), c = n(14); 312 | e.exports = function (e) { 313 | return new Promise(function (t, f) { 314 | var p = e.data, d = e.headers; 315 | r.isFormData(p) && delete d["Content-Type"]; 316 | var l = new XMLHttpRequest; 317 | if (e.auth) { 318 | var h = e.auth.username || "", m = e.auth.password || ""; 319 | d.Authorization = "Basic " + btoa(h + ":" + m) 320 | } 321 | var y = s(e.baseURL, e.url); 322 | if (l.open(e.method.toUpperCase(), i(y, e.params, e.paramsSerializer), !0), l.timeout = e.timeout, l.onreadystatechange = function () { 323 | if (l && 4 === l.readyState && (0 !== l.status || l.responseURL && 0 === l.responseURL.indexOf("file:"))) { 324 | var n = "getAllResponseHeaders" in l ? a(l.getAllResponseHeaders()) : null, 325 | r = e.responseType && "text" !== e.responseType ? l.response : l.responseText, 326 | i = {data: r, status: l.status, statusText: l.statusText, headers: n, config: e, request: l}; 327 | o(t, f, i), l = null 328 | } 329 | }, l.onabort = function () { 330 | l && (f(c("Request aborted", e, "ECONNABORTED", l)), l = null) 331 | }, l.onerror = function () { 332 | f(c("Network Error", e, null, l)), l = null 333 | }, l.ontimeout = function () { 334 | var t = "timeout of " + e.timeout + "ms exceeded"; 335 | e.timeoutErrorMessage && (t = e.timeoutErrorMessage), f(c(t, e, "ECONNABORTED", l)), l = null 336 | }, r.isStandardBrowserEnv()) { 337 | var g = n(21), v = (e.withCredentials || u(y)) && e.xsrfCookieName ? g.read(e.xsrfCookieName) : void 0; 338 | v && (d[e.xsrfHeaderName] = v) 339 | } 340 | if ("setRequestHeader" in l && r.forEach(d, function (e, t) { 341 | "undefined" == typeof p && "content-type" === t.toLowerCase() ? delete d[t] : l.setRequestHeader(t, e) 342 | }), r.isUndefined(e.withCredentials) || (l.withCredentials = !!e.withCredentials), e.responseType) try { 343 | l.responseType = e.responseType 344 | } catch (t) { 345 | if ("json" !== e.responseType) throw t 346 | } 347 | "function" == typeof e.onDownloadProgress && l.addEventListener("progress", e.onDownloadProgress), "function" == typeof e.onUploadProgress && l.upload && l.upload.addEventListener("progress", e.onUploadProgress), e.cancelToken && e.cancelToken.promise.then(function (e) { 348 | l && (l.abort(), f(e), l = null) 349 | }), void 0 === p && (p = null), l.send(p) 350 | }) 351 | } 352 | }, function (e, t, n) { 353 | "use strict"; 354 | var r = n(14); 355 | e.exports = function (e, t, n) { 356 | var o = n.config.validateStatus; 357 | !o || o(n.status) ? e(n) : t(r("Request failed with status code " + n.status, n.config, null, n.request, n)) 358 | } 359 | }, function (e, t, n) { 360 | "use strict"; 361 | var r = n(15); 362 | e.exports = function (e, t, n, o, i) { 363 | var s = new Error(e); 364 | return r(s, t, n, o, i) 365 | } 366 | }, function (e, t) { 367 | "use strict"; 368 | e.exports = function (e, t, n, r, o) { 369 | return e.config = t, n && (e.code = n), e.request = r, e.response = o, e.isAxiosError = !0, e.toJSON = function () { 370 | return { 371 | message: this.message, 372 | name: this.name, 373 | description: this.description, 374 | number: this.number, 375 | fileName: this.fileName, 376 | lineNumber: this.lineNumber, 377 | columnNumber: this.columnNumber, 378 | stack: this.stack, 379 | config: this.config, 380 | code: this.code 381 | } 382 | }, e 383 | } 384 | }, function (e, t, n) { 385 | "use strict"; 386 | var r = n(17), o = n(18); 387 | e.exports = function (e, t) { 388 | return e && !r(t) ? o(e, t) : t 389 | } 390 | }, function (e, t) { 391 | "use strict"; 392 | e.exports = function (e) { 393 | return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e) 394 | } 395 | }, function (e, t) { 396 | "use strict"; 397 | e.exports = function (e, t) { 398 | return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e 399 | } 400 | }, function (e, t, n) { 401 | "use strict"; 402 | var r = n(2), 403 | o = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]; 404 | e.exports = function (e) { 405 | var t, n, i, s = {}; 406 | return e ? (r.forEach(e.split("\n"), function (e) { 407 | if (i = e.indexOf(":"), t = r.trim(e.substr(0, i)).toLowerCase(), n = r.trim(e.substr(i + 1)), t) { 408 | if (s[t] && o.indexOf(t) >= 0) return; 409 | "set-cookie" === t ? s[t] = (s[t] ? s[t] : []).concat([n]) : s[t] = s[t] ? s[t] + ", " + n : n 410 | } 411 | }), s) : s 412 | } 413 | }, function (e, t, n) { 414 | "use strict"; 415 | var r = n(2); 416 | e.exports = r.isStandardBrowserEnv() ? function () { 417 | function e(e) { 418 | var t = e; 419 | return n && (o.setAttribute("href", t), t = o.href), o.setAttribute("href", t), { 420 | href: o.href, 421 | protocol: o.protocol ? o.protocol.replace(/:$/, "") : "", 422 | host: o.host, 423 | search: o.search ? o.search.replace(/^\?/, "") : "", 424 | hash: o.hash ? o.hash.replace(/^#/, "") : "", 425 | hostname: o.hostname, 426 | port: o.port, 427 | pathname: "/" === o.pathname.charAt(0) ? o.pathname : "/" + o.pathname 428 | } 429 | } 430 | 431 | var t, n = /(msie|trident)/i.test(navigator.userAgent), o = document.createElement("a"); 432 | return t = e(window.location.href), function (n) { 433 | var o = r.isString(n) ? e(n) : n; 434 | return o.protocol === t.protocol && o.host === t.host 435 | } 436 | }() : function () { 437 | return function () { 438 | return !0 439 | } 440 | }() 441 | }, function (e, t, n) { 442 | "use strict"; 443 | var r = n(2); 444 | e.exports = r.isStandardBrowserEnv() ? function () { 445 | return { 446 | write: function (e, t, n, o, i, s) { 447 | var a = []; 448 | a.push(e + "=" + encodeURIComponent(t)), r.isNumber(n) && a.push("expires=" + new Date(n).toGMTString()), r.isString(o) && a.push("path=" + o), r.isString(i) && a.push("domain=" + i), s === !0 && a.push("secure"), document.cookie = a.join("; ") 449 | }, read: function (e) { 450 | var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)")); 451 | return t ? decodeURIComponent(t[3]) : null 452 | }, remove: function (e) { 453 | this.write(e, "", Date.now() - 864e5) 454 | } 455 | } 456 | }() : function () { 457 | return { 458 | write: function () { 459 | }, read: function () { 460 | return null 461 | }, remove: function () { 462 | } 463 | } 464 | }() 465 | }, function (e, t, n) { 466 | "use strict"; 467 | var r = n(2); 468 | e.exports = function (e, t) { 469 | t = t || {}; 470 | var n = {}, o = ["url", "method", "params", "data"], i = ["headers", "auth", "proxy"], 471 | s = ["baseURL", "url", "transformRequest", "transformResponse", "paramsSerializer", "timeout", "withCredentials", "adapter", "responseType", "xsrfCookieName", "xsrfHeaderName", "onUploadProgress", "onDownloadProgress", "maxContentLength", "validateStatus", "maxRedirects", "httpAgent", "httpsAgent", "cancelToken", "socketPath"]; 472 | r.forEach(o, function (e) { 473 | "undefined" != typeof t[e] && (n[e] = t[e]) 474 | }), r.forEach(i, function (o) { 475 | r.isObject(t[o]) ? n[o] = r.deepMerge(e[o], t[o]) : "undefined" != typeof t[o] ? n[o] = t[o] : r.isObject(e[o]) ? n[o] = r.deepMerge(e[o]) : "undefined" != typeof e[o] && (n[o] = e[o]) 476 | }), r.forEach(s, function (r) { 477 | "undefined" != typeof t[r] ? n[r] = t[r] : "undefined" != typeof e[r] && (n[r] = e[r]) 478 | }); 479 | var a = o.concat(i).concat(s), u = Object.keys(t).filter(function (e) { 480 | return a.indexOf(e) === -1 481 | }); 482 | return r.forEach(u, function (r) { 483 | "undefined" != typeof t[r] ? n[r] = t[r] : "undefined" != typeof e[r] && (n[r] = e[r]) 484 | }), n 485 | } 486 | }, function (e, t) { 487 | "use strict"; 488 | 489 | function n(e) { 490 | this.message = e 491 | } 492 | 493 | n.prototype.toString = function () { 494 | return "Cancel" + (this.message ? ": " + this.message : "") 495 | }, n.prototype.__CANCEL__ = !0, e.exports = n 496 | }, function (e, t, n) { 497 | "use strict"; 498 | 499 | function r(e) { 500 | if ("function" != typeof e) throw new TypeError("executor must be a function."); 501 | var t; 502 | this.promise = new Promise(function (e) { 503 | t = e 504 | }); 505 | var n = this; 506 | e(function (e) { 507 | n.reason || (n.reason = new o(e), t(n.reason)) 508 | }) 509 | } 510 | 511 | var o = n(23); 512 | r.prototype.throwIfRequested = function () { 513 | if (this.reason) throw this.reason 514 | }, r.source = function () { 515 | var e, t = new r(function (t) { 516 | e = t 517 | }); 518 | return {token: t, cancel: e} 519 | }, e.exports = r 520 | }, function (e, t) { 521 | "use strict"; 522 | e.exports = function (e) { 523 | return function (t) { 524 | return e.apply(null, t) 525 | } 526 | } 527 | }]) 528 | }); 529 | //# sourceMappingURL=axios.min.map 530 | !function (t, e) { 531 | for (var n in e) t[n] = e[n] 532 | }(window, function (t) { 533 | function e(r) { 534 | if (n[r]) return n[r].exports; 535 | var o = n[r] = {i: r, l: !1, exports: {}}; 536 | return t[r].call(o.exports, o, o.exports, e), o.l = !0, o.exports 537 | } 538 | 539 | var n = {}; 540 | return e.m = t, e.c = n, e.i = function (t) { 541 | return t 542 | }, e.d = function (t, n, r) { 543 | e.o(t, n) || Object.defineProperty(t, n, {configurable: !1, enumerable: !0, get: r}) 544 | }, e.n = function (t) { 545 | var n = t && t.__esModule ? function () { 546 | return t.default 547 | } : function () { 548 | return t 549 | }; 550 | return e.d(n, "a", n), n 551 | }, e.o = function (t, e) { 552 | return Object.prototype.hasOwnProperty.call(t, e) 553 | }, e.p = "", e(e.s = 3) 554 | }([function (t, e, n) { 555 | "use strict"; 556 | 557 | function r(t, e) { 558 | var n = {}; 559 | for (var r in t) n[r] = t[r]; 560 | return n.target = n.currentTarget = e, n 561 | } 562 | 563 | function o(t) { 564 | function e(e) { 565 | return function () { 566 | var n = this.hasOwnProperty(e + "_") ? this[e + "_"] : this.xhr[e], r = (t[e] || {}).getter; 567 | return r && r(n, this) || n 568 | } 569 | } 570 | 571 | function n(e) { 572 | return function (n) { 573 | var o = this.xhr, i = this, u = t[e]; 574 | if ("on" === e.substring(0, 2)) i[e + "_"] = n, o[e] = function (u) { 575 | u = r(u, i), t[e] && t[e].call(i, o, u) || n.call(i, u) 576 | }; else { 577 | var s = (u || {}).setter; 578 | n = s && s(n, i) || n, this[e + "_"] = n; 579 | try { 580 | o[e] = n 581 | } catch (t) { 582 | } 583 | } 584 | } 585 | } 586 | 587 | function o(e) { 588 | return function () { 589 | var n = [].slice.call(arguments); 590 | if (t[e]) { 591 | var r = t[e].call(this, n, this.xhr); 592 | if (r) return r 593 | } 594 | return this.xhr[e].apply(this.xhr, n) 595 | } 596 | } 597 | 598 | return window[s] = window[s] || XMLHttpRequest, XMLHttpRequest = function () { 599 | var t = new window[s]; 600 | for (var r in t) { 601 | var i = ""; 602 | try { 603 | i = u(t[r]) 604 | } catch (t) { 605 | } 606 | "function" === i ? this[r] = o(r) : Object.defineProperty(this, r, {get: e(r), set: n(r), enumerable: !0}) 607 | } 608 | var a = this; 609 | t.getProxy = function () { 610 | return a 611 | }, this.xhr = t 612 | }, window[s] 613 | } 614 | 615 | function i() { 616 | window[s] && (XMLHttpRequest = window[s]), window[s] = void 0 617 | } 618 | 619 | Object.defineProperty(e, "__esModule", {value: !0}); 620 | var u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { 621 | return typeof t 622 | } : function (t) { 623 | return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t 624 | }; 625 | e.configEvent = r, e.hook = o, e.unHook = i; 626 | var s = "_rxhr" 627 | }, function (t, e, n) { 628 | "use strict"; 629 | 630 | function r(t) { 631 | if (h) throw"Proxy already exists"; 632 | return h = new f(t) 633 | } 634 | 635 | function o() { 636 | h = null, (0, d.unHook)() 637 | } 638 | 639 | function i(t) { 640 | return t.replace(/^\s+|\s+$/g, "") 641 | } 642 | 643 | function u(t) { 644 | return t.watcher || (t.watcher = document.createElement("a")) 645 | } 646 | 647 | function s(t, e) { 648 | var n = t.getProxy(), r = "on" + e + "_", o = (0, d.configEvent)({type: e}, n); 649 | n[r] && n[r](o); 650 | var i; 651 | "function" == typeof Event ? i = new Event(e, {bubbles: !1}) : (i = document.createEvent("Event"), i.initEvent(e, !1, !0)), u(t).dispatchEvent(i) 652 | } 653 | 654 | function a(t) { 655 | this.xhr = t, this.xhrProxy = t.getProxy() 656 | } 657 | 658 | function c(t) { 659 | function e(t) { 660 | a.call(this, t) 661 | } 662 | 663 | return e[b] = Object.create(a[b]), e[b].next = t, e 664 | } 665 | 666 | function f(t) { 667 | function e(t, e) { 668 | var n = new P(t); 669 | if (!f) return n.resolve(); 670 | var r = { 671 | response: e.response, 672 | status: e.status, 673 | statusText: e.statusText, 674 | config: t.config, 675 | headers: t.resHeader || t.getAllResponseHeaders().split("\r\n").reduce(function (t, e) { 676 | if ("" === e) return t; 677 | var n = e.split(":"); 678 | return t[n.shift()] = i(n.join(":")), t 679 | }, {}) 680 | }; 681 | f(r, n) 682 | } 683 | 684 | function n(t, e, n) { 685 | var r = new H(t), o = {config: t.config, error: n}; 686 | h ? h(o, r) : r.next(o) 687 | } 688 | 689 | function r() { 690 | return !0 691 | } 692 | 693 | function o(t, e) { 694 | return n(t, this, e), !0 695 | } 696 | 697 | function a(t, n) { 698 | return 4 === t.readyState && 0 !== t.status ? e(t, n) : 4 !== t.readyState && s(t, w), !0 699 | } 700 | 701 | var c = t.onRequest, f = t.onResponse, h = t.onError; 702 | return (0, d.hook)({ 703 | onload: r, onloadend: r, onerror: o, ontimeout: o, onabort: o, onreadystatechange: function (t) { 704 | return a(t, this) 705 | }, open: function (t, e) { 706 | var r = this, o = e.config = {headers: {}}; 707 | o.method = t[0], o.url = t[1], o.async = t[2], o.user = t[3], o.password = t[4], o.xhr = e; 708 | var i = "on" + w; 709 | e[i] || (e[i] = function () { 710 | return a(e, r) 711 | }); 712 | var u = function (t) { 713 | n(e, r, (0, d.configEvent)(t, r)) 714 | }; 715 | if ([x, y, g].forEach(function (t) { 716 | var n = "on" + t; 717 | e[n] || (e[n] = u) 718 | }), c) return !0 719 | }, send: function (t, e) { 720 | var n = e.config; 721 | if (n.withCredentials = e.withCredentials, n.body = t[0], c) { 722 | var r = function () { 723 | c(n, new m(e)) 724 | }; 725 | return !1 === n.async ? r() : setTimeout(r), !0 726 | } 727 | }, setRequestHeader: function (t, e) { 728 | return e.config.headers[t[0].toLowerCase()] = t[1], !0 729 | }, addEventListener: function (t, e) { 730 | var n = this; 731 | if (-1 !== l.indexOf(t[0])) { 732 | var r = t[1]; 733 | return u(e).addEventListener(t[0], function (e) { 734 | var o = (0, d.configEvent)(e, n); 735 | o.type = t[0], o.isTrusted = !0, r.call(n, o) 736 | }), !0 737 | } 738 | }, getAllResponseHeaders: function (t, e) { 739 | var n = e.resHeader; 740 | if (n) { 741 | var r = ""; 742 | for (var o in n) r += o + ": " + n[o] + "\r\n"; 743 | return r 744 | } 745 | }, getResponseHeader: function (t, e) { 746 | var n = e.resHeader; 747 | if (n) return n[(t[0] || "").toLowerCase()] 748 | } 749 | }) 750 | } 751 | 752 | Object.defineProperty(e, "__esModule", {value: !0}), e.proxy = r, e.unProxy = o; 753 | var h, d = n(0), l = ["load", "loadend", "timeout", "error", "readystatechange", "abort"], v = l[0], p = l[1], 754 | y = l[2], x = l[3], w = l[4], g = l[5], b = "prototype"; 755 | a[b] = Object.create({ 756 | resolve: function (t) { 757 | var e = this.xhrProxy, n = this.xhr; 758 | e.readyState = 4, n.resHeader = t.headers, e.response = e.responseText = t.response, e.statusText = t.statusText, e.status = t.status, s(n, w), s(n, v), s(n, p) 759 | }, reject: function (t) { 760 | this.xhrProxy.status = 0, s(this.xhr, t.type), s(this.xhr, p) 761 | } 762 | }); 763 | var m = c(function (t) { 764 | var e = this.xhr; 765 | t = t || e.config, e.withCredentials = t.withCredentials, e.open(t.method, t.url, !1 !== t.async, t.user, t.password); 766 | for (var n in t.headers) e.setRequestHeader(n, t.headers[n]); 767 | e.send(t.body) 768 | }), P = c(function (t) { 769 | this.resolve(t) 770 | }), H = c(function (t) { 771 | this.reject(t) 772 | }) 773 | }, , function (t, e, n) { 774 | "use strict"; 775 | Object.defineProperty(e, "__esModule", {value: !0}), e.ah = void 0; 776 | var r = n(0), o = n(1); 777 | e.ah = {proxy: o.proxy, unProxy: o.unProxy, hook: r.hook, unHook: r.unHook} 778 | }])); 779 | //# sourceMappingURL=ajaxhook.min.js.map 780 | ah.proxy({ 781 | //请求成功后进入 782 | onResponse: (response, handler) => { 783 | if (response.config.url.startsWith('/api/movie')) { 784 | axios.post('http://localhost/receiver/movie', { 785 | url: window.location.href, 786 | data: response.response 787 | }, { 788 | headers: { 789 | 'Content-Type': 'application/json' 790 | } 791 | }) 792 | console.log(response.response) 793 | console.log(typeof response) 794 | console.log(response) 795 | handler.next(response) 796 | } 797 | } 798 | }) 799 | 800 | --------------------------------------------------------------------------------