Deployed e3be2c0 to 5.4 with MkDocs 1.1.2 and mike 0.5.5
[GitHub/WoltLab/woltlab.github.io.git] / 5.4 / javascript / new-api_ajax / index.html
1
2 <!doctype html>
3 <html lang="en" class="no-js">
4 <head>
5
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width,initial-scale=1">
8
9
10
11
12 <link rel="icon" href="../../assets/default.favicon.ico">
13 <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.1.0">
14
15
16
17 <title>Ajax - WoltLab Suite Documentation</title>
18
19
20
21 <link rel="stylesheet" href="../../assets/stylesheets/main.33e2939f.min.css">
22
23
24 <link rel="stylesheet" href="../../assets/stylesheets/palette.ef6f36e2.min.css">
25
26
27
28 <meta name="theme-color" content="#009485">
29
30
31
32
33
34
35
36
37
38 <link rel="stylesheet" href="../../stylesheets/extra.css">
39
40
41
42
43
44 </head>
45
46
47
48
49
50
51
52 <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="">
53
54
55 <script>function __prefix(e){return new URL("../..",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
56
57 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
58 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
59 <label class="md-overlay" for="__drawer"></label>
60 <div data-md-component="skip">
61
62
63 <a href="#ajax-requests-javascript-api" class="md-skip">
64 Skip to content
65 </a>
66
67 </div>
68 <div data-md-component="announce">
69
70 <aside class="md-announce">
71 <div class="md-announce__inner md-grid md-typeset">
72
73 <a href="https://www.woltlab.com">Back to <strong>woltlab.com</strong></a>
74
75 </div>
76 </aside>
77
78 </div>
79
80 <header class="md-header" data-md-component="header">
81 <nav class="md-header__inner md-grid" aria-label="Header">
82 <a href="../.." title="WoltLab Suite Documentation" class="md-header__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
83
84 <img src="../../assets/logo.png" alt="logo">
85
86 </a>
87 <label class="md-header__button md-icon" for="__drawer">
88 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
89 </label>
90 <div class="md-header__title" data-md-component="header-title">
91 <div class="md-header__ellipsis">
92 <div class="md-header__topic">
93 <span class="md-ellipsis">
94 WoltLab Suite Documentation
95 </span>
96 </div>
97 <div class="md-header__topic" data-md-component="header-topic">
98 <span class="md-ellipsis">
99
100 Ajax
101
102 </span>
103 </div>
104 </div>
105 </div>
106
107
108
109 <label class="md-header__button md-icon" for="__search">
110 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
111 </label>
112
113 <div class="md-search" data-md-component="search" role="dialog">
114 <label class="md-search__overlay" for="__search"></label>
115 <div class="md-search__inner" role="search">
116 <form class="md-search__form" name="search">
117 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
118 <label class="md-search__icon md-icon" for="__search">
119 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
120 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
121 </label>
122 <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
123 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
124 </button>
125 </form>
126 <div class="md-search__output">
127 <div class="md-search__scrollwrap" data-md-scrollfix>
128 <div class="md-search-result" data-md-component="search-result">
129 <div class="md-search-result__meta">
130 Initializing search
131 </div>
132 <ol class="md-search-result__list"></ol>
133 </div>
134 </div>
135 </div>
136 </div>
137 </div>
138
139
140 <div class="md-header__source">
141
142 <a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
143 <div class="md-source__icon md-icon">
144
145 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
146 </div>
147 <div class="md-source__repository">
148 GitHub
149 </div>
150 </a>
151 </div>
152
153 </nav>
154 </header>
155
156 <div class="md-container" data-md-component="container">
157
158
159
160
161 <main class="md-main" data-md-component="main">
162 <div class="md-main__inner md-grid">
163
164
165
166 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
167 <div class="md-sidebar__scrollwrap">
168 <div class="md-sidebar__inner">
169
170
171
172 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
173 <label class="md-nav__title" for="__drawer">
174 <a href="../.." title="WoltLab Suite Documentation" class="md-nav__button md-logo" aria-label="WoltLab Suite Documentation" data-md-component="logo">
175
176 <img src="../../assets/logo.png" alt="logo">
177
178 </a>
179 WoltLab Suite Documentation
180 </label>
181
182 <div class="md-nav__source">
183
184 <a href="https://github.com/WoltLab/docs.woltlab.com/" title="Go to repository" class="md-source" data-md-component="source">
185 <div class="md-source__icon md-icon">
186
187 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
188 </div>
189 <div class="md-source__repository">
190 GitHub
191 </div>
192 </a>
193 </div>
194
195 <ul class="md-nav__list" data-md-scrollfix>
196
197
198
199
200
201
202
203
204 <li class="md-nav__item">
205 <a href="../../getting-started/" class="md-nav__link">
206 Getting Started
207 </a>
208 </li>
209
210
211
212
213
214
215
216
217
218
219
220 <li class="md-nav__item md-nav__item--nested">
221
222
223 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
224
225 <label class="md-nav__link" for="__nav_2">
226 PHP API
227 <span class="md-nav__icon md-icon"></span>
228 </label>
229 <nav class="md-nav" aria-label="PHP API" data-md-level="1">
230 <label class="md-nav__title" for="__nav_2">
231 <span class="md-nav__icon md-icon"></span>
232 PHP API
233 </label>
234 <ul class="md-nav__list" data-md-scrollfix>
235
236
237
238
239
240 <li class="md-nav__item">
241 <a href="../../php/pages/" class="md-nav__link">
242 Pages
243 </a>
244 </li>
245
246
247
248
249
250
251
252 <li class="md-nav__item">
253 <a href="../../php/database-objects/" class="md-nav__link">
254 Database Objects
255 </a>
256 </li>
257
258
259
260
261
262
263
264 <li class="md-nav__item">
265 <a href="../../php/database-access/" class="md-nav__link">
266 Database Access
267 </a>
268 </li>
269
270
271
272
273
274
275
276 <li class="md-nav__item">
277 <a href="../../php/exceptions/" class="md-nav__link">
278 Exceptions
279 </a>
280 </li>
281
282
283
284
285
286
287
288
289 <li class="md-nav__item md-nav__item--nested">
290
291
292 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" type="checkbox" id="__nav_2_5" >
293
294 <label class="md-nav__link" for="__nav_2_5">
295 API
296 <span class="md-nav__icon md-icon"></span>
297 </label>
298 <nav class="md-nav" aria-label="API" data-md-level="2">
299 <label class="md-nav__title" for="__nav_2_5">
300 <span class="md-nav__icon md-icon"></span>
301 API
302 </label>
303 <ul class="md-nav__list" data-md-scrollfix>
304
305
306
307
308
309 <li class="md-nav__item">
310 <a href="../../php/api/caches/" class="md-nav__link">
311 Caches
312 </a>
313 </li>
314
315
316
317
318
319
320
321 <li class="md-nav__item">
322 <a href="../../php/api/comments/" class="md-nav__link">
323 Comments
324 </a>
325 </li>
326
327
328
329
330
331
332
333 <li class="md-nav__item">
334 <a href="../../php/api/cronjobs/" class="md-nav__link">
335 Cronjobs
336 </a>
337 </li>
338
339
340
341
342
343
344
345 <li class="md-nav__item">
346 <a href="../../php/api/events/" class="md-nav__link">
347 Events
348 </a>
349 </li>
350
351
352
353
354
355
356
357
358 <li class="md-nav__item md-nav__item--nested">
359
360
361 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5_5" type="checkbox" id="__nav_2_5_5" >
362
363 <label class="md-nav__link" for="__nav_2_5_5">
364 Form Builder
365 <span class="md-nav__icon md-icon"></span>
366 </label>
367 <nav class="md-nav" aria-label="Form Builder" data-md-level="3">
368 <label class="md-nav__title" for="__nav_2_5_5">
369 <span class="md-nav__icon md-icon"></span>
370 Form Builder
371 </label>
372 <ul class="md-nav__list" data-md-scrollfix>
373
374
375
376
377
378 <li class="md-nav__item">
379 <a href="../../php/api/form_builder/overview/" class="md-nav__link">
380 Overview
381 </a>
382 </li>
383
384
385
386
387
388
389
390 <li class="md-nav__item">
391 <a href="../../php/api/form_builder/structure/" class="md-nav__link">
392 Structure
393 </a>
394 </li>
395
396
397
398
399
400
401
402 <li class="md-nav__item">
403 <a href="../../php/api/form_builder/form_fields/" class="md-nav__link">
404 Fields
405 </a>
406 </li>
407
408
409
410
411
412
413
414 <li class="md-nav__item">
415 <a href="../../php/api/form_builder/validation_data/" class="md-nav__link">
416 Validation and Data
417 </a>
418 </li>
419
420
421
422
423
424
425
426 <li class="md-nav__item">
427 <a href="../../php/api/form_builder/dependencies/" class="md-nav__link">
428 Dependencies
429 </a>
430 </li>
431
432
433
434 </ul>
435 </nav>
436 </li>
437
438
439
440
441
442
443
444 <li class="md-nav__item">
445 <a href="../../php/api/package_installation_plugins/" class="md-nav__link">
446 Package Installation Plugins
447 </a>
448 </li>
449
450
451
452
453
454
455
456 <li class="md-nav__item">
457 <a href="../../php/api/user_activity_points/" class="md-nav__link">
458 User Activity Points
459 </a>
460 </li>
461
462
463
464
465
466
467
468 <li class="md-nav__item">
469 <a href="../../php/api/user_notifications/" class="md-nav__link">
470 User Notifications
471 </a>
472 </li>
473
474
475
476
477
478
479
480 <li class="md-nav__item">
481 <a href="../../php/api/sitemaps/" class="md-nav__link">
482 Sitemaps
483 </a>
484 </li>
485
486
487
488 </ul>
489 </nav>
490 </li>
491
492
493
494
495
496
497
498 <li class="md-nav__item">
499 <a href="../../php/code-style/" class="md-nav__link">
500 Code Style
501 </a>
502 </li>
503
504
505
506
507
508
509
510 <li class="md-nav__item">
511 <a href="../../php/apps/" class="md-nav__link">
512 Apps
513 </a>
514 </li>
515
516
517
518
519
520
521
522 <li class="md-nav__item">
523 <a href="../../php/gdpr/" class="md-nav__link">
524 GDPR
525 </a>
526 </li>
527
528
529
530 </ul>
531 </nav>
532 </li>
533
534
535
536
537
538
539
540
541
542
543
544 <li class="md-nav__item md-nav__item--nested">
545
546
547 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
548
549 <label class="md-nav__link" for="__nav_3">
550 Languages, Templates & CSS
551 <span class="md-nav__icon md-icon"></span>
552 </label>
553 <nav class="md-nav" aria-label="Languages, Templates & CSS" data-md-level="1">
554 <label class="md-nav__title" for="__nav_3">
555 <span class="md-nav__icon md-icon"></span>
556 Languages, Templates & CSS
557 </label>
558 <ul class="md-nav__list" data-md-scrollfix>
559
560
561
562
563
564 <li class="md-nav__item">
565 <a href="../../view/languages/" class="md-nav__link">
566 Languages
567 </a>
568 </li>
569
570
571
572
573
574
575
576 <li class="md-nav__item">
577 <a href="../../view/templates/" class="md-nav__link">
578 Templates
579 </a>
580 </li>
581
582
583
584
585
586
587
588 <li class="md-nav__item">
589 <a href="../../view/css/" class="md-nav__link">
590 CSS
591 </a>
592 </li>
593
594
595
596 </ul>
597 </nav>
598 </li>
599
600
601
602
603
604
605
606
607
608
609
610
611
612 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
613
614
615 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" checked>
616
617 <label class="md-nav__link" for="__nav_4">
618 JavaScript API
619 <span class="md-nav__icon md-icon"></span>
620 </label>
621 <nav class="md-nav" aria-label="JavaScript API" data-md-level="1">
622 <label class="md-nav__title" for="__nav_4">
623 <span class="md-nav__icon md-icon"></span>
624 JavaScript API
625 </label>
626 <ul class="md-nav__list" data-md-scrollfix>
627
628
629
630
631
632 <li class="md-nav__item">
633 <a href="../general-usage/" class="md-nav__link">
634 General Usage
635 </a>
636 </li>
637
638
639
640
641
642
643
644
645
646
647 <li class="md-nav__item md-nav__item--active md-nav__item--nested">
648
649
650 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" checked>
651
652 <label class="md-nav__link" for="__nav_4_2">
653 New API
654 <span class="md-nav__icon md-icon"></span>
655 </label>
656 <nav class="md-nav" aria-label="New API" data-md-level="2">
657 <label class="md-nav__title" for="__nav_4_2">
658 <span class="md-nav__icon md-icon"></span>
659 New API
660 </label>
661 <ul class="md-nav__list" data-md-scrollfix>
662
663
664
665
666
667 <li class="md-nav__item">
668 <a href="../new-api_writing-a-module/" class="md-nav__link">
669 Writing a module
670 </a>
671 </li>
672
673
674
675
676
677
678
679 <li class="md-nav__item">
680 <a href="../new-api_data-structures/" class="md-nav__link">
681 Data Structures
682 </a>
683 </li>
684
685
686
687
688
689
690
691 <li class="md-nav__item">
692 <a href="../new-api_core/" class="md-nav__link">
693 Core Functions
694 </a>
695 </li>
696
697
698
699
700
701
702
703 <li class="md-nav__item">
704 <a href="../new-api_dom/" class="md-nav__link">
705 DOM
706 </a>
707 </li>
708
709
710
711
712
713
714
715 <li class="md-nav__item">
716 <a href="../new-api_events/" class="md-nav__link">
717 Event Handling
718 </a>
719 </li>
720
721
722
723
724
725
726
727
728
729 <li class="md-nav__item md-nav__item--active">
730
731 <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
732
733
734
735
736 <label class="md-nav__link md-nav__link--active" for="__toc">
737 Ajax
738 <span class="md-nav__icon md-icon"></span>
739 </label>
740
741 <a href="./" class="md-nav__link md-nav__link--active">
742 Ajax
743 </a>
744
745
746 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
747
748
749
750
751
752 <label class="md-nav__title" for="__toc">
753 <span class="md-nav__icon md-icon"></span>
754 Table of contents
755 </label>
756 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
757
758 <li class="md-nav__item">
759 <a href="#ajax-inside-modules" class="md-nav__link">
760 Ajax inside Modules
761 </a>
762
763 <nav class="md-nav" aria-label="Ajax inside Modules">
764 <ul class="md-nav__list">
765
766 <li class="md-nav__item">
767 <a href="#_ajaxsetup" class="md-nav__link">
768 _ajaxSetup()
769 </a>
770
771 </li>
772
773 <li class="md-nav__item">
774 <a href="#request-settings" class="md-nav__link">
775 Request Settings
776 </a>
777
778 <nav class="md-nav" aria-label="Request Settings">
779 <ul class="md-nav__list">
780
781 <li class="md-nav__item">
782 <a href="#data" class="md-nav__link">
783 data
784 </a>
785
786 </li>
787
788 <li class="md-nav__item">
789 <a href="#contenttype" class="md-nav__link">
790 contentType
791 </a>
792
793 </li>
794
795 <li class="md-nav__item">
796 <a href="#responsetype" class="md-nav__link">
797 responseType
798 </a>
799
800 </li>
801
802 <li class="md-nav__item">
803 <a href="#type" class="md-nav__link">
804 type
805 </a>
806
807 </li>
808
809 <li class="md-nav__item">
810 <a href="#url" class="md-nav__link">
811 url
812 </a>
813
814 </li>
815
816 <li class="md-nav__item">
817 <a href="#withcredentials" class="md-nav__link">
818 withCredentials
819 </a>
820
821 </li>
822
823 <li class="md-nav__item">
824 <a href="#autoabort" class="md-nav__link">
825 autoAbort
826 </a>
827
828 </li>
829
830 <li class="md-nav__item">
831 <a href="#ignoreerror" class="md-nav__link">
832 ignoreError
833 </a>
834
835 </li>
836
837 <li class="md-nav__item">
838 <a href="#silent" class="md-nav__link">
839 silent
840 </a>
841
842 </li>
843
844 <li class="md-nav__item">
845 <a href="#includerequestedwith" class="md-nav__link">
846 includeRequestedWith
847 </a>
848
849 </li>
850
851 <li class="md-nav__item">
852 <a href="#failure" class="md-nav__link">
853 failure
854 </a>
855
856 </li>
857
858 <li class="md-nav__item">
859 <a href="#finalize" class="md-nav__link">
860 finalize
861 </a>
862
863 </li>
864
865 <li class="md-nav__item">
866 <a href="#success" class="md-nav__link">
867 success
868 </a>
869
870 </li>
871
872 </ul>
873 </nav>
874
875 </li>
876
877 <li class="md-nav__item">
878 <a href="#_ajaxsuccess" class="md-nav__link">
879 _ajaxSuccess()
880 </a>
881
882 </li>
883
884 <li class="md-nav__item">
885 <a href="#_ajaxfailure" class="md-nav__link">
886 _ajaxFailure()
887 </a>
888
889 </li>
890
891 </ul>
892 </nav>
893
894 </li>
895
896 <li class="md-nav__item">
897 <a href="#single-requests-without-a-module" class="md-nav__link">
898 Single Requests Without a Module
899 </a>
900
901 </li>
902
903 </ul>
904
905 </nav>
906
907 </li>
908
909
910
911
912
913
914
915 <li class="md-nav__item">
916 <a href="../new-api_dialogs/" class="md-nav__link">
917 Dialogs
918 </a>
919 </li>
920
921
922
923
924
925
926
927 <li class="md-nav__item">
928 <a href="../new-api_browser/" class="md-nav__link">
929 Browser and Screen Sizes
930 </a>
931 </li>
932
933
934
935
936
937
938
939 <li class="md-nav__item">
940 <a href="../new-api_ui/" class="md-nav__link">
941 User Interface
942 </a>
943 </li>
944
945
946
947 </ul>
948 </nav>
949 </li>
950
951
952
953
954
955
956
957 <li class="md-nav__item">
958 <a href="../legacy-api/" class="md-nav__link">
959 Legacy API
960 </a>
961 </li>
962
963
964
965
966
967
968
969 <li class="md-nav__item">
970 <a href="../helper-functions/" class="md-nav__link">
971 Helper Functions
972 </a>
973 </li>
974
975
976
977
978
979
980
981 <li class="md-nav__item">
982 <a href="../code-snippets/" class="md-nav__link">
983 Code Snippets
984 </a>
985 </li>
986
987
988
989 </ul>
990 </nav>
991 </li>
992
993
994
995
996
997
998
999
1000
1001
1002
1003 <li class="md-nav__item md-nav__item--nested">
1004
1005
1006 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
1007
1008 <label class="md-nav__link" for="__nav_5">
1009 Package Components
1010 <span class="md-nav__icon md-icon"></span>
1011 </label>
1012 <nav class="md-nav" aria-label="Package Components" data-md-level="1">
1013 <label class="md-nav__title" for="__nav_5">
1014 <span class="md-nav__icon md-icon"></span>
1015 Package Components
1016 </label>
1017 <ul class="md-nav__list" data-md-scrollfix>
1018
1019
1020
1021
1022
1023 <li class="md-nav__item">
1024 <a href="../../package/package-xml/" class="md-nav__link">
1025 package.xml
1026 </a>
1027 </li>
1028
1029
1030
1031
1032
1033
1034
1035
1036 <li class="md-nav__item md-nav__item--nested">
1037
1038
1039 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_2" type="checkbox" id="__nav_5_2" >
1040
1041 <label class="md-nav__link" for="__nav_5_2">
1042 PIPs
1043 <span class="md-nav__icon md-icon"></span>
1044 </label>
1045 <nav class="md-nav" aria-label="PIPs" data-md-level="2">
1046 <label class="md-nav__title" for="__nav_5_2">
1047 <span class="md-nav__icon md-icon"></span>
1048 PIPs
1049 </label>
1050 <ul class="md-nav__list" data-md-scrollfix>
1051
1052
1053
1054
1055
1056 <li class="md-nav__item">
1057 <a href="../../package/pip/" class="md-nav__link">
1058 Overview
1059 </a>
1060 </li>
1061
1062
1063
1064
1065
1066
1067
1068 <li class="md-nav__item">
1069 <a href="../../package/pip/acl-option/" class="md-nav__link">
1070 aclOption
1071 </a>
1072 </li>
1073
1074
1075
1076
1077
1078
1079
1080 <li class="md-nav__item">
1081 <a href="../../package/pip/acp-menu/" class="md-nav__link">
1082 acpMenu
1083 </a>
1084 </li>
1085
1086
1087
1088
1089
1090
1091
1092 <li class="md-nav__item">
1093 <a href="../../package/pip/acp-search-provider/" class="md-nav__link">
1094 acpSearchProvider
1095 </a>
1096 </li>
1097
1098
1099
1100
1101
1102
1103
1104 <li class="md-nav__item">
1105 <a href="../../package/pip/acp-template/" class="md-nav__link">
1106 acpTemplate
1107 </a>
1108 </li>
1109
1110
1111
1112
1113
1114
1115
1116 <li class="md-nav__item">
1117 <a href="../../package/pip/bbcode/" class="md-nav__link">
1118 bbcode
1119 </a>
1120 </li>
1121
1122
1123
1124
1125
1126
1127
1128 <li class="md-nav__item">
1129 <a href="../../package/pip/box/" class="md-nav__link">
1130 box
1131 </a>
1132 </li>
1133
1134
1135
1136
1137
1138
1139
1140 <li class="md-nav__item">
1141 <a href="../../package/pip/clipboard-action/" class="md-nav__link">
1142 clipboardAction
1143 </a>
1144 </li>
1145
1146
1147
1148
1149
1150
1151
1152 <li class="md-nav__item">
1153 <a href="../../package/pip/core-object/" class="md-nav__link">
1154 coreObject
1155 </a>
1156 </li>
1157
1158
1159
1160
1161
1162
1163
1164 <li class="md-nav__item">
1165 <a href="../../package/pip/cronjob/" class="md-nav__link">
1166 cronjob
1167 </a>
1168 </li>
1169
1170
1171
1172
1173
1174
1175
1176 <li class="md-nav__item">
1177 <a href="../../package/pip/event-listener/" class="md-nav__link">
1178 eventListener
1179 </a>
1180 </li>
1181
1182
1183
1184
1185
1186
1187
1188 <li class="md-nav__item">
1189 <a href="../../package/pip/file/" class="md-nav__link">
1190 file
1191 </a>
1192 </li>
1193
1194
1195
1196
1197
1198
1199
1200 <li class="md-nav__item">
1201 <a href="../../package/pip/language/" class="md-nav__link">
1202 language
1203 </a>
1204 </li>
1205
1206
1207
1208
1209
1210
1211
1212 <li class="md-nav__item">
1213 <a href="../../package/pip/media-provider/" class="md-nav__link">
1214 mediaProvider
1215 </a>
1216 </li>
1217
1218
1219
1220
1221
1222
1223
1224 <li class="md-nav__item">
1225 <a href="../../package/pip/menu/" class="md-nav__link">
1226 menu
1227 </a>
1228 </li>
1229
1230
1231
1232
1233
1234
1235
1236 <li class="md-nav__item">
1237 <a href="../../package/pip/menu-item/" class="md-nav__link">
1238 menuItem
1239 </a>
1240 </li>
1241
1242
1243
1244
1245
1246
1247
1248 <li class="md-nav__item">
1249 <a href="../../package/pip/object-type/" class="md-nav__link">
1250 objectType
1251 </a>
1252 </li>
1253
1254
1255
1256
1257
1258
1259
1260 <li class="md-nav__item">
1261 <a href="../../package/pip/object-type-definition/" class="md-nav__link">
1262 objectTypeDefinition
1263 </a>
1264 </li>
1265
1266
1267
1268
1269
1270
1271
1272 <li class="md-nav__item">
1273 <a href="../../package/pip/option/" class="md-nav__link">
1274 option
1275 </a>
1276 </li>
1277
1278
1279
1280
1281
1282
1283
1284 <li class="md-nav__item">
1285 <a href="../../package/pip/page/" class="md-nav__link">
1286 page
1287 </a>
1288 </li>
1289
1290
1291
1292
1293
1294
1295
1296 <li class="md-nav__item">
1297 <a href="../../package/pip/pip/" class="md-nav__link">
1298 pip
1299 </a>
1300 </li>
1301
1302
1303
1304
1305
1306
1307
1308 <li class="md-nav__item">
1309 <a href="../../package/pip/script/" class="md-nav__link">
1310 script
1311 </a>
1312 </li>
1313
1314
1315
1316
1317
1318
1319
1320 <li class="md-nav__item">
1321 <a href="../../package/pip/smiley/" class="md-nav__link">
1322 smiley
1323 </a>
1324 </li>
1325
1326
1327
1328
1329
1330
1331
1332 <li class="md-nav__item">
1333 <a href="../../package/pip/sql/" class="md-nav__link">
1334 sql
1335 </a>
1336 </li>
1337
1338
1339
1340
1341
1342
1343
1344 <li class="md-nav__item">
1345 <a href="../../package/pip/style/" class="md-nav__link">
1346 style
1347 </a>
1348 </li>
1349
1350
1351
1352
1353
1354
1355
1356 <li class="md-nav__item">
1357 <a href="../../package/pip/template/" class="md-nav__link">
1358 template
1359 </a>
1360 </li>
1361
1362
1363
1364
1365
1366
1367
1368 <li class="md-nav__item">
1369 <a href="../../package/pip/template-listener/" class="md-nav__link">
1370 templateListener
1371 </a>
1372 </li>
1373
1374
1375
1376
1377
1378
1379
1380 <li class="md-nav__item">
1381 <a href="../../package/pip/user-group-option/" class="md-nav__link">
1382 userGroupOption
1383 </a>
1384 </li>
1385
1386
1387
1388
1389
1390
1391
1392 <li class="md-nav__item">
1393 <a href="../../package/pip/user-menu/" class="md-nav__link">
1394 userMenu
1395 </a>
1396 </li>
1397
1398
1399
1400
1401
1402
1403
1404 <li class="md-nav__item">
1405 <a href="../../package/pip/user-notification-event/" class="md-nav__link">
1406 userNotificationEvent
1407 </a>
1408 </li>
1409
1410
1411
1412
1413
1414
1415
1416 <li class="md-nav__item">
1417 <a href="../../package/pip/user-option/" class="md-nav__link">
1418 userOption
1419 </a>
1420 </li>
1421
1422
1423
1424
1425
1426
1427
1428 <li class="md-nav__item">
1429 <a href="../../package/pip/user-profile-menu/" class="md-nav__link">
1430 userProfileMenu
1431 </a>
1432 </li>
1433
1434
1435
1436 </ul>
1437 </nav>
1438 </li>
1439
1440
1441
1442
1443
1444
1445
1446 <li class="md-nav__item">
1447 <a href="../../package/database-php-api/" class="md-nav__link">
1448 Database PHP API
1449 </a>
1450 </li>
1451
1452
1453
1454 </ul>
1455 </nav>
1456 </li>
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468 <li class="md-nav__item md-nav__item--nested">
1469
1470
1471 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
1472
1473 <label class="md-nav__link" for="__nav_6">
1474 Migration
1475 <span class="md-nav__icon md-icon"></span>
1476 </label>
1477 <nav class="md-nav" aria-label="Migration" data-md-level="1">
1478 <label class="md-nav__title" for="__nav_6">
1479 <span class="md-nav__icon md-icon"></span>
1480 Migration
1481 </label>
1482 <ul class="md-nav__list" data-md-scrollfix>
1483
1484
1485
1486
1487
1488
1489 <li class="md-nav__item md-nav__item--nested">
1490
1491
1492 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_1" type="checkbox" id="__nav_6_1" >
1493
1494 <label class="md-nav__link" for="__nav_6_1">
1495 Migrating from WSC 5.3
1496 <span class="md-nav__icon md-icon"></span>
1497 </label>
1498 <nav class="md-nav" aria-label="Migrating from WSC 5.3" data-md-level="2">
1499 <label class="md-nav__title" for="__nav_6_1">
1500 <span class="md-nav__icon md-icon"></span>
1501 Migrating from WSC 5.3
1502 </label>
1503 <ul class="md-nav__list" data-md-scrollfix>
1504
1505
1506
1507
1508
1509 <li class="md-nav__item">
1510 <a href="../../migration/wsc53/php/" class="md-nav__link">
1511 PHP API
1512 </a>
1513 </li>
1514
1515
1516
1517
1518
1519
1520
1521 <li class="md-nav__item">
1522 <a href="../../migration/wsc53/session/" class="md-nav__link">
1523 Session Handling and Authentication
1524 </a>
1525 </li>
1526
1527
1528
1529
1530
1531
1532
1533 <li class="md-nav__item">
1534 <a href="../../migration/wsc53/javascript/" class="md-nav__link">
1535 JavaScript
1536 </a>
1537 </li>
1538
1539
1540
1541
1542
1543
1544
1545 <li class="md-nav__item">
1546 <a href="../../migration/wsc53/templates/" class="md-nav__link">
1547 Templates
1548 </a>
1549 </li>
1550
1551
1552
1553
1554
1555
1556
1557 <li class="md-nav__item">
1558 <a href="../../migration/wsc53/libraries/" class="md-nav__link">
1559 Third Party Libraries
1560 </a>
1561 </li>
1562
1563
1564
1565 </ul>
1566 </nav>
1567 </li>
1568
1569
1570
1571
1572
1573
1574
1575
1576 <li class="md-nav__item md-nav__item--nested">
1577
1578
1579 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_2" type="checkbox" id="__nav_6_2" >
1580
1581 <label class="md-nav__link" for="__nav_6_2">
1582 Migrating from WSC 5.2
1583 <span class="md-nav__icon md-icon"></span>
1584 </label>
1585 <nav class="md-nav" aria-label="Migrating from WSC 5.2" data-md-level="2">
1586 <label class="md-nav__title" for="__nav_6_2">
1587 <span class="md-nav__icon md-icon"></span>
1588 Migrating from WSC 5.2
1589 </label>
1590 <ul class="md-nav__list" data-md-scrollfix>
1591
1592
1593
1594
1595
1596 <li class="md-nav__item">
1597 <a href="../../migration/wsc52/php/" class="md-nav__link">
1598 PHP API
1599 </a>
1600 </li>
1601
1602
1603
1604
1605
1606
1607
1608 <li class="md-nav__item">
1609 <a href="../../migration/wsc52/templates/" class="md-nav__link">
1610 Templates and Languages
1611 </a>
1612 </li>
1613
1614
1615
1616
1617
1618
1619
1620 <li class="md-nav__item">
1621 <a href="../../migration/wsc52/libraries/" class="md-nav__link">
1622 Third Party Libraries
1623 </a>
1624 </li>
1625
1626
1627
1628 </ul>
1629 </nav>
1630 </li>
1631
1632
1633
1634
1635
1636
1637
1638
1639 <li class="md-nav__item md-nav__item--nested">
1640
1641
1642 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" >
1643
1644 <label class="md-nav__link" for="__nav_6_3">
1645 Migrating from WSC 3.1
1646 <span class="md-nav__icon md-icon"></span>
1647 </label>
1648 <nav class="md-nav" aria-label="Migrating from WSC 3.1" data-md-level="2">
1649 <label class="md-nav__title" for="__nav_6_3">
1650 <span class="md-nav__icon md-icon"></span>
1651 Migrating from WSC 3.1
1652 </label>
1653 <ul class="md-nav__list" data-md-scrollfix>
1654
1655
1656
1657
1658
1659 <li class="md-nav__item">
1660 <a href="../../migration/wsc31/php/" class="md-nav__link">
1661 PHP API
1662 </a>
1663 </li>
1664
1665
1666
1667 </ul>
1668 </nav>
1669 </li>
1670
1671
1672
1673
1674
1675
1676
1677
1678 <li class="md-nav__item md-nav__item--nested">
1679
1680
1681 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_4" type="checkbox" id="__nav_6_4" >
1682
1683 <label class="md-nav__link" for="__nav_6_4">
1684 Migrating from WSC 3.0
1685 <span class="md-nav__icon md-icon"></span>
1686 </label>
1687 <nav class="md-nav" aria-label="Migrating from WSC 3.0" data-md-level="2">
1688 <label class="md-nav__title" for="__nav_6_4">
1689 <span class="md-nav__icon md-icon"></span>
1690 Migrating from WSC 3.0
1691 </label>
1692 <ul class="md-nav__list" data-md-scrollfix>
1693
1694
1695
1696
1697
1698 <li class="md-nav__item">
1699 <a href="../../migration/wsc30/php/" class="md-nav__link">
1700 PHP API
1701 </a>
1702 </li>
1703
1704
1705
1706
1707
1708
1709
1710 <li class="md-nav__item">
1711 <a href="../../migration/wsc30/javascript/" class="md-nav__link">
1712 JavaScript API
1713 </a>
1714 </li>
1715
1716
1717
1718
1719
1720
1721
1722 <li class="md-nav__item">
1723 <a href="../../migration/wsc30/templates/" class="md-nav__link">
1724 Templates
1725 </a>
1726 </li>
1727
1728
1729
1730
1731
1732
1733
1734 <li class="md-nav__item">
1735 <a href="../../migration/wsc30/css/" class="md-nav__link">
1736 CSS
1737 </a>
1738 </li>
1739
1740
1741
1742
1743
1744
1745
1746 <li class="md-nav__item">
1747 <a href="../../migration/wsc30/package/" class="md-nav__link">
1748 Package Components
1749 </a>
1750 </li>
1751
1752
1753
1754 </ul>
1755 </nav>
1756 </li>
1757
1758
1759
1760
1761
1762
1763
1764
1765 <li class="md-nav__item md-nav__item--nested">
1766
1767
1768 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_5" type="checkbox" id="__nav_6_5" >
1769
1770 <label class="md-nav__link" for="__nav_6_5">
1771 Migrating from WCF 2.1
1772 <span class="md-nav__icon md-icon"></span>
1773 </label>
1774 <nav class="md-nav" aria-label="Migrating from WCF 2.1" data-md-level="2">
1775 <label class="md-nav__title" for="__nav_6_5">
1776 <span class="md-nav__icon md-icon"></span>
1777 Migrating from WCF 2.1
1778 </label>
1779 <ul class="md-nav__list" data-md-scrollfix>
1780
1781
1782
1783
1784
1785 <li class="md-nav__item">
1786 <a href="../../migration/wcf21/php/" class="md-nav__link">
1787 PHP API
1788 </a>
1789 </li>
1790
1791
1792
1793
1794
1795
1796
1797 <li class="md-nav__item">
1798 <a href="../../migration/wcf21/templates/" class="md-nav__link">
1799 Templates
1800 </a>
1801 </li>
1802
1803
1804
1805
1806
1807
1808
1809 <li class="md-nav__item">
1810 <a href="../../migration/wcf21/css/" class="md-nav__link">
1811 CSS
1812 </a>
1813 </li>
1814
1815
1816
1817
1818
1819
1820
1821 <li class="md-nav__item">
1822 <a href="../../migration/wcf21/package/" class="md-nav__link">
1823 Package Components
1824 </a>
1825 </li>
1826
1827
1828
1829 </ul>
1830 </nav>
1831 </li>
1832
1833
1834
1835 </ul>
1836 </nav>
1837 </li>
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849 <li class="md-nav__item md-nav__item--nested">
1850
1851
1852 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
1853
1854 <label class="md-nav__link" for="__nav_7">
1855 Tutorials
1856 <span class="md-nav__icon md-icon"></span>
1857 </label>
1858 <nav class="md-nav" aria-label="Tutorials" data-md-level="1">
1859 <label class="md-nav__title" for="__nav_7">
1860 <span class="md-nav__icon md-icon"></span>
1861 Tutorials
1862 </label>
1863 <ul class="md-nav__list" data-md-scrollfix>
1864
1865
1866
1867
1868
1869
1870 <li class="md-nav__item md-nav__item--nested">
1871
1872
1873 <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
1874
1875 <label class="md-nav__link" for="__nav_7_1">
1876 Tutorial Series
1877 <span class="md-nav__icon md-icon"></span>
1878 </label>
1879 <nav class="md-nav" aria-label="Tutorial Series" data-md-level="2">
1880 <label class="md-nav__title" for="__nav_7_1">
1881 <span class="md-nav__icon md-icon"></span>
1882 Tutorial Series
1883 </label>
1884 <ul class="md-nav__list" data-md-scrollfix>
1885
1886
1887
1888
1889
1890 <li class="md-nav__item">
1891 <a href="../../tutorial/series/overview/" class="md-nav__link">
1892 Overview
1893 </a>
1894 </li>
1895
1896
1897
1898
1899
1900
1901
1902 <li class="md-nav__item">
1903 <a href="../../tutorial/series/part_1/" class="md-nav__link">
1904 Part 1
1905 </a>
1906 </li>
1907
1908
1909
1910
1911
1912
1913
1914 <li class="md-nav__item">
1915 <a href="../../tutorial/series/part_2/" class="md-nav__link">
1916 Part 2
1917 </a>
1918 </li>
1919
1920
1921
1922
1923
1924
1925
1926 <li class="md-nav__item">
1927 <a href="../../tutorial/series/part_3/" class="md-nav__link">
1928 Part 3
1929 </a>
1930 </li>
1931
1932
1933
1934 </ul>
1935 </nav>
1936 </li>
1937
1938
1939
1940 </ul>
1941 </nav>
1942 </li>
1943
1944
1945
1946 </ul>
1947 </nav>
1948 </div>
1949 </div>
1950 </div>
1951
1952
1953
1954 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1955 <div class="md-sidebar__scrollwrap">
1956 <div class="md-sidebar__inner">
1957
1958 <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1959
1960
1961
1962
1963
1964 <label class="md-nav__title" for="__toc">
1965 <span class="md-nav__icon md-icon"></span>
1966 Table of contents
1967 </label>
1968 <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1969
1970 <li class="md-nav__item">
1971 <a href="#ajax-inside-modules" class="md-nav__link">
1972 Ajax inside Modules
1973 </a>
1974
1975 <nav class="md-nav" aria-label="Ajax inside Modules">
1976 <ul class="md-nav__list">
1977
1978 <li class="md-nav__item">
1979 <a href="#_ajaxsetup" class="md-nav__link">
1980 _ajaxSetup()
1981 </a>
1982
1983 </li>
1984
1985 <li class="md-nav__item">
1986 <a href="#request-settings" class="md-nav__link">
1987 Request Settings
1988 </a>
1989
1990 <nav class="md-nav" aria-label="Request Settings">
1991 <ul class="md-nav__list">
1992
1993 <li class="md-nav__item">
1994 <a href="#data" class="md-nav__link">
1995 data
1996 </a>
1997
1998 </li>
1999
2000 <li class="md-nav__item">
2001 <a href="#contenttype" class="md-nav__link">
2002 contentType
2003 </a>
2004
2005 </li>
2006
2007 <li class="md-nav__item">
2008 <a href="#responsetype" class="md-nav__link">
2009 responseType
2010 </a>
2011
2012 </li>
2013
2014 <li class="md-nav__item">
2015 <a href="#type" class="md-nav__link">
2016 type
2017 </a>
2018
2019 </li>
2020
2021 <li class="md-nav__item">
2022 <a href="#url" class="md-nav__link">
2023 url
2024 </a>
2025
2026 </li>
2027
2028 <li class="md-nav__item">
2029 <a href="#withcredentials" class="md-nav__link">
2030 withCredentials
2031 </a>
2032
2033 </li>
2034
2035 <li class="md-nav__item">
2036 <a href="#autoabort" class="md-nav__link">
2037 autoAbort
2038 </a>
2039
2040 </li>
2041
2042 <li class="md-nav__item">
2043 <a href="#ignoreerror" class="md-nav__link">
2044 ignoreError
2045 </a>
2046
2047 </li>
2048
2049 <li class="md-nav__item">
2050 <a href="#silent" class="md-nav__link">
2051 silent
2052 </a>
2053
2054 </li>
2055
2056 <li class="md-nav__item">
2057 <a href="#includerequestedwith" class="md-nav__link">
2058 includeRequestedWith
2059 </a>
2060
2061 </li>
2062
2063 <li class="md-nav__item">
2064 <a href="#failure" class="md-nav__link">
2065 failure
2066 </a>
2067
2068 </li>
2069
2070 <li class="md-nav__item">
2071 <a href="#finalize" class="md-nav__link">
2072 finalize
2073 </a>
2074
2075 </li>
2076
2077 <li class="md-nav__item">
2078 <a href="#success" class="md-nav__link">
2079 success
2080 </a>
2081
2082 </li>
2083
2084 </ul>
2085 </nav>
2086
2087 </li>
2088
2089 <li class="md-nav__item">
2090 <a href="#_ajaxsuccess" class="md-nav__link">
2091 _ajaxSuccess()
2092 </a>
2093
2094 </li>
2095
2096 <li class="md-nav__item">
2097 <a href="#_ajaxfailure" class="md-nav__link">
2098 _ajaxFailure()
2099 </a>
2100
2101 </li>
2102
2103 </ul>
2104 </nav>
2105
2106 </li>
2107
2108 <li class="md-nav__item">
2109 <a href="#single-requests-without-a-module" class="md-nav__link">
2110 Single Requests Without a Module
2111 </a>
2112
2113 </li>
2114
2115 </ul>
2116
2117 </nav>
2118 </div>
2119 </div>
2120 </div>
2121
2122
2123 <div class="md-content" data-md-component="content">
2124 <article class="md-content__inner md-typeset">
2125
2126
2127 <a href="https://github.com/WoltLab/docs.woltlab.com/edit/5.4/docs/javascript/new-api_ajax.md" title="Edit this page" class="md-content__button md-icon">
2128 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>
2129 </a>
2130
2131
2132 <h1 id="ajax-requests-javascript-api">Ajax Requests - JavaScript API<a class="headerlink" href="#ajax-requests-javascript-api" title="Permanent link">#</a></h1>
2133 <h2 id="ajax-inside-modules">Ajax inside Modules<a class="headerlink" href="#ajax-inside-modules" title="Permanent link">#</a></h2>
2134 <p>The Ajax component was designed to be used from inside modules where an object
2135 reference is used to delegate request callbacks. This is acomplished through
2136 a set of magic methods that are automatically called when the request is created
2137 or its state has changed.</p>
2138 <h3 id="_ajaxsetup"><code>_ajaxSetup()</code><a class="headerlink" href="#_ajaxsetup" title="Permanent link">#</a></h3>
2139 <p>The lazy initialization is performed upon the first invocation from the callee,
2140 using the magic <code>_ajaxSetup()</code> method to retrieve the basic configuration for
2141 this and any future requests.</p>
2142 <p>The data returned by <code>_ajaxSetup()</code> is cached and the data will be used to
2143 pre-populate the request data before sending it. The callee can overwrite any of
2144 these properties. It is intended to reduce the overhead when issuing request
2145 when these requests share the same properties, such as accessing the same endpoint.</p>
2146 <div class="highlight"><pre><span></span><code><span class="c1">// App/Foo.js</span>
2147 <span class="nx">define</span><span class="p">([</span><span class="s2">&quot;Ajax&quot;</span><span class="p">],</span> <span class="kd">function</span><span class="p">(</span><span class="nx">Ajax</span><span class="p">)</span> <span class="p">{</span>
2148 <span class="s2">&quot;use strict&quot;</span><span class="p">;</span>
2149
2150 <span class="kd">function</span> <span class="nx">Foo</span><span class="p">()</span> <span class="p">{};</span>
2151 <span class="nx">Foo</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span>
2152 <span class="nx">one</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
2153 <span class="c1">// this will issue an ajax request with the parameter `value` set to `1`</span>
2154 <span class="nx">Ajax</span><span class="p">.</span><span class="nx">api</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
2155 <span class="p">},</span>
2156
2157 <span class="nx">two</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
2158 <span class="c1">// this request is almost identical to the one issued with `.one()`, but</span>
2159 <span class="c1">// the value is now set to `2` for this invocation only.</span>
2160 <span class="nx">Ajax</span><span class="p">.</span><span class="nx">api</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="p">{</span>
2161 <span class="nx">parameters</span><span class="o">:</span> <span class="p">{</span>
2162 <span class="nx">value</span><span class="o">:</span> <span class="mf">2</span>
2163 <span class="p">}</span>
2164 <span class="p">});</span>
2165 <span class="p">},</span>
2166
2167 <span class="nx">_ajaxSetup</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
2168 <span class="k">return</span> <span class="p">{</span>
2169 <span class="nx">data</span><span class="o">:</span> <span class="p">{</span>
2170 <span class="nx">actionName</span><span class="o">:</span> <span class="s2">&quot;makeSnafucated&quot;</span><span class="p">,</span>
2171 <span class="nx">className</span><span class="o">:</span> <span class="s2">&quot;app\\data\\foo\\FooAction&quot;</span><span class="p">,</span>
2172 <span class="nx">parameters</span><span class="o">:</span> <span class="p">{</span>
2173 <span class="nx">value</span><span class="o">:</span> <span class="mf">1</span>
2174 <span class="p">}</span>
2175 <span class="p">}</span>
2176 <span class="p">}</span>
2177 <span class="p">}</span>
2178 <span class="p">};</span>
2179
2180 <span class="k">return</span> <span class="nx">Foo</span><span class="p">;</span>
2181 <span class="p">});</span>
2182 </code></pre></div>
2183 <h3 id="request-settings">Request Settings<a class="headerlink" href="#request-settings" title="Permanent link">#</a></h3>
2184 <p>The object returned by the aforementioned <code>_ajaxSetup()</code> callback can contain these
2185 values:</p>
2186 <h4 id="data"><code>data</code><a class="headerlink" href="#data" title="Permanent link">#</a></h4>
2187 <p><em>Defaults to <code>{}</code>.</em></p>
2188 <p>A plain JavaScript object that contains the request data that represents the form
2189 data of the request. The <code>parameters</code> key is recognized by the PHP Ajax API and
2190 becomes accessible through <code>$this-&gt;parameters</code>.</p>
2191 <h4 id="contenttype"><code>contentType</code><a class="headerlink" href="#contenttype" title="Permanent link">#</a></h4>
2192 <p><em>Defaults to <code>application/x-www-form-urlencoded; charset=UTF-8</code>.</em></p>
2193 <p>The request content type, sets the <code>Content-Type</code> HTTP header if it is not empty.</p>
2194 <h4 id="responsetype"><code>responseType</code><a class="headerlink" href="#responsetype" title="Permanent link">#</a></h4>
2195 <p><em>Defaults to <code>application/json</code>.</em></p>
2196 <p>The server must respond with the <code>Content-Type</code> HTTP header set to this value,
2197 otherwise the request will be treated as failed. Requests for <code>application/json</code>
2198 will have the return body attempted to be evaluated as JSON.</p>
2199 <p>Other content types will only be validated based on the HTTP header, but no
2200 additional transformation is performed. For example, setting the <code>responseType</code>
2201 to <code>application/xml</code> will check the HTTP header, but will not transform the
2202 <code>data</code> parameter, you'll still receive a string in <code>_ajaxSuccess</code>!</p>
2203 <h4 id="type"><code>type</code><a class="headerlink" href="#type" title="Permanent link">#</a></h4>
2204 <p><em>Defaults to <code>POST</code>.</em></p>
2205 <p>The HTTP Verb used for this request.</p>
2206 <h4 id="url"><code>url</code><a class="headerlink" href="#url" title="Permanent link">#</a></h4>
2207 <p><em>Defaults to an empty string.</em></p>
2208 <p>Manual override for the request endpoint, it will be automatically set to the
2209 Core API endpoint if left empty. If the Core API endpoint is used, the options
2210 <code>includeRequestedWith</code> and <code>withCredentials</code> will be force-set to true.</p>
2211 <h4 id="withcredentials"><code>withCredentials</code><a class="headerlink" href="#withcredentials" title="Permanent link">#</a></h4>
2212 <div class="admonition warning">
2213 <p class="admonition-title">Enabling this parameter for any domain other than the current will trigger a CORS preflight request.</p>
2214 </div>
2215 <p><em>Defaults to <code>false</code>.</em></p>
2216 <p>Include cookies with this requested, is always true when <code>url</code> is (implicitly)
2217 set to the Core API endpoint.</p>
2218 <h4 id="autoabort"><code>autoAbort</code><a class="headerlink" href="#autoabort" title="Permanent link">#</a></h4>
2219 <p><em>Defaults to <code>false</code>.</em></p>
2220 <p>When set to <code>true</code>, any pending responses to earlier requests will be silently
2221 discarded when issuing a new request. This only makes sense if the new request
2222 is meant to completely replace the result of the previous one, regardless of its
2223 reponse body.</p>
2224 <p>Typical use-cases include input field with suggestions, where possible values
2225 are requested from the server, but the input changed faster than the server was
2226 able to reply. In this particular case the client is not interested in the result
2227 for an earlier value, auto-aborting these requests avoids implementing this logic
2228 in the requesting code.</p>
2229 <h4 id="ignoreerror"><code>ignoreError</code><a class="headerlink" href="#ignoreerror" title="Permanent link">#</a></h4>
2230 <p><em>Defaults to <code>false</code>.</em></p>
2231 <p>Any failing request will invoke the <code>failure</code>-callback to check if an error
2232 message should be displayed. Enabling this option will suppress the general
2233 error overlay that reports a failed request.</p>
2234 <p>You can achieve the same result by returning <code>false</code> in the <code>failure</code>-callback.</p>
2235 <h4 id="silent"><code>silent</code><a class="headerlink" href="#silent" title="Permanent link">#</a></h4>
2236 <p><em>Defaults to <code>false</code>.</em></p>
2237 <p>Enabling this option will suppress the loading indicator overlay for this request,
2238 other non-"silent" requests will still trigger the loading indicator.</p>
2239 <h4 id="includerequestedwith"><code>includeRequestedWith</code><a class="headerlink" href="#includerequestedwith" title="Permanent link">#</a></h4>
2240 <div class="admonition warning">
2241 <p class="admonition-title">Enabling this parameter for any domain other than the current will trigger a CORS preflight request.</p>
2242 </div>
2243 <p><em>Defaults to <code>true</code>.</em></p>
2244 <p>Sets the custom HTTP header <code>X-Requested-With: XMLHttpRequest</code> for the request,
2245 it is automatically set to <code>true</code> when <code>url</code> is pointing at the WSC API endpoint.</p>
2246 <h4 id="failure"><code>failure</code><a class="headerlink" href="#failure" title="Permanent link">#</a></h4>
2247 <p><em>Defaults to <code>null</code>.</em></p>
2248 <p>Optional callback function that will be invoked for requests that have failed
2249 for one of these reasons:
2250 1. The request timed out.
2251 2. The HTTP status is not <code>2xx</code> or <code>304</code>.
2252 3. A <code>responseType</code> was set, but the response HTTP header <code>Content-Type</code> did not match the expected value.
2253 4. The <code>responseType</code> was set to <code>application/json</code>, but the response body was not valid JSON.</p>
2254 <p>The callback function receives the parameter <code>xhr</code> (the <code>XMLHttpRequest</code> object)
2255 and <code>options</code> (deep clone of the request parameters). If the callback returns
2256 <code>false</code>, the general error overlay for failed requests will be suppressed.</p>
2257 <p>There will be no error overlay if <code>ignoreError</code> is set to <code>true</code> or if the
2258 request failed while attempting to evaluate the response body as JSON.</p>
2259 <h4 id="finalize"><code>finalize</code><a class="headerlink" href="#finalize" title="Permanent link">#</a></h4>
2260 <p><em>Defaults to <code>null</code>.</em></p>
2261 <p>Optional callback function that will be invoked once the request has completed,
2262 regardless if it succeeded or failed. The only parameter it receives is
2263 <code>options</code> (the request parameters object), but it does not receive the request's
2264 <code>XMLHttpRequest</code>.</p>
2265 <h4 id="success"><code>success</code><a class="headerlink" href="#success" title="Permanent link">#</a></h4>
2266 <p><em>Defaults to <code>null</code>.</em></p>
2267 <p>This semi-optional callback function will always be set to <code>_ajaxSuccess()</code> when
2268 invoking <code>Ajax.api()</code>. It receives four parameters:
2269 1. <code>data</code> - The request's response body as a string, or a JavaScript object if
2270 <code>contentType</code> was set to <code>application/json</code>.
2271 2. <code>responseText</code> - The unmodified response body, it equals the value for <code>data</code>
2272 for non-JSON requests.
2273 3. <code>xhr</code> - The underlying <code>XMLHttpRequest</code> object.
2274 4. <code>requestData</code> - The request parameters that were supplied when the request
2275 was issued.</p>
2276 <h3 id="_ajaxsuccess"><code>_ajaxSuccess()</code><a class="headerlink" href="#_ajaxsuccess" title="Permanent link">#</a></h3>
2277 <p>This callback method is automatically called for successful AJAX requests, it
2278 receives four parameters, with the first one containing either the response body
2279 as a string, or a JavaScript object for JSON requests.</p>
2280 <h3 id="_ajaxfailure"><code>_ajaxFailure()</code><a class="headerlink" href="#_ajaxfailure" title="Permanent link">#</a></h3>
2281 <p>Optional callback function that is invoked for failed requests, it will be
2282 automatically called if the callee implements it, otherwise the global error
2283 handler will be executed.</p>
2284 <h2 id="single-requests-without-a-module">Single Requests Without a Module<a class="headerlink" href="#single-requests-without-a-module" title="Permanent link">#</a></h2>
2285 <p>The <code>Ajax.api()</code> method expects an object that is used to extract the request
2286 configuration as well as providing the callback functions when the request state
2287 changes.</p>
2288 <p>You can issue a simple Ajax request without object binding through <code>Ajax.apiOnce()</code>
2289 that will destroy the instance after the request was finalized. This method is
2290 significantly more expensive for repeated requests and does not offer deriving
2291 modules from altering the behavior. It is strongly recommended to always use
2292 <code>Ajax.api()</code> for requests to the WSC API endpoint.</p>
2293 <div class="highlight"><pre><span></span><code><span class="p">&lt;</span><span class="nt">script</span> <span class="na">data-relocate</span><span class="o">=</span><span class="s">&quot;true&quot;</span><span class="p">&gt;</span>
2294 <span class="nx">require</span><span class="p">([</span><span class="s2">&quot;Ajax&quot;</span><span class="p">],</span> <span class="kd">function</span><span class="p">(</span><span class="nx">Ajax</span><span class="p">)</span> <span class="p">{</span>
2295 <span class="nx">Ajax</span><span class="p">.</span><span class="nx">apiOnce</span><span class="p">({</span>
2296 <span class="nx">data</span><span class="o">:</span> <span class="p">{</span>
2297 <span class="nx">actionName</span><span class="o">:</span> <span class="s2">&quot;makeSnafucated&quot;</span><span class="p">,</span>
2298 <span class="nx">className</span><span class="o">:</span> <span class="s2">&quot;app\\data\\foo\\FooAction&quot;</span><span class="p">,</span>
2299 <span class="nx">parameters</span><span class="o">:</span> <span class="p">{</span>
2300 <span class="nx">value</span><span class="o">:</span> <span class="mf">3</span>
2301 <span class="p">}</span>
2302 <span class="p">},</span>
2303 <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span>
2304 <span class="nx">elBySel</span><span class="p">(</span><span class="s2">&quot;.some-element&quot;</span><span class="p">).</span><span class="nx">textContent</span> <span class="o">=</span> <span class="nx">data</span><span class="p">.</span><span class="nx">bar</span><span class="p">;</span>
2305 <span class="p">}</span>
2306 <span class="p">})</span>
2307 <span class="p">});</span>
2308 <span class="p">&lt;/</span><span class="nt">script</span><span class="p">&gt;</span>
2309 </code></pre></div>
2310
2311
2312
2313
2314 <hr>
2315 <div class="md-source-date">
2316 <small>
2317
2318 Last update: 2021-01-08
2319
2320 </small>
2321 </div>
2322
2323
2324
2325
2326
2327
2328
2329
2330 </article>
2331 </div>
2332 </div>
2333
2334 </main>
2335
2336
2337 <footer class="md-footer">
2338
2339 <nav class="md-footer__inner md-grid" aria-label="Footer">
2340
2341 <a href="../new-api_events/" class="md-footer__link md-footer__link--prev" rel="prev">
2342 <div class="md-footer__button md-icon">
2343 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
2344 </div>
2345 <div class="md-footer__title">
2346 <div class="md-ellipsis">
2347 <span class="md-footer__direction">
2348 Previous
2349 </span>
2350 Event Handling
2351 </div>
2352 </div>
2353 </a>
2354
2355
2356 <a href="../new-api_dialogs/" class="md-footer__link md-footer__link--next" rel="next">
2357 <div class="md-footer__title">
2358 <div class="md-ellipsis">
2359 <span class="md-footer__direction">
2360 Next
2361 </span>
2362 Dialogs
2363 </div>
2364 </div>
2365 <div class="md-footer__button md-icon">
2366 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
2367 </div>
2368 </a>
2369
2370 </nav>
2371
2372 <div class="md-footer-meta md-typeset">
2373 <div class="md-footer-meta__inner md-grid">
2374 <div class="md-footer-copyright">
2375
2376 <div class="md-footer-copyright__highlight">
2377 Copyright © 2020 WoltLab GmbH
2378 </div>
2379
2380 Made with
2381 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2382 Material for MkDocs
2383 </a>
2384
2385 </div>
2386 <div class="md-footer-copyright">
2387 <a href="https://www.woltlab.com/legal-notice/">Legal Notice</a>
2388 <a href="https://www.woltlab.com/privacy-policy/">Privacy Policy</a>
2389 </div>
2390 </div>
2391 </div>
2392 </footer>
2393
2394 </div>
2395 <div class="md-dialog" data-md-component="dialog">
2396 <div class="md-dialog__inner md-typeset"></div>
2397 </div>
2398 <script id="__config" type="application/json">{"base": "../..", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../../assets/javascripts/workers/search.fe42c31b.min.js", "version": {"provider": "mike"}}</script>
2399
2400
2401 <script src="../../assets/javascripts/bundle.d892486b.min.js"></script>
2402
2403
2404 </body>
2405 </html>