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