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