/** * Thin jQuery.ajax wrapper for WP REST API requests. * * Currently only applies to requests that do not use the `wp-api.js` Backbone * client library, though this may change. Serves several purposes: * * - Allows overriding these requests as needed by customized WP installations. * - Sends the REST API nonce as a request header. * - Allows specifying only an endpoint namespace/path instead of a full URL. * * @since 4.9.0 * @since 5.6.0 Added overriding of the "PUT" and "DELETE" methods with "POST". * Added an "application/json" Accept header to all requests. * @output wp-includes/js/api-request.js */ ( function( $ ) { var wpApiSettings = window.wpApiSettings; function apiRequest( options ) { options = apiRequest.buildAjaxOptions( options ); return apiRequest.transport( options ); } apiRequest.buildAjaxOptions = function( options ) { var url = options.url; var path = options.path; var method = options.method; var namespaceTrimmed, endpointTrimmed, apiRoot; var headers, addNonceHeader, addAcceptHeader, headerName; if ( typeof options.namespace === 'string' && typeof options.endpoint === 'string' ) { namespaceTrimmed = options.namespace.replace( /^\/|\/$/g, '' ); endpointTrimmed = options.endpoint.replace( /^\//, '' ); if ( endpointTrimmed ) { path = namespaceTrimmed + '/' + endpointTrimmed; } else { path = namespaceTrimmed; } } if ( typeof path === 'string' ) { apiRoot = wpApiSettings.root; path = path.replace( /^\//, '' ); // API root may already include query parameter prefix // if site is configured to use plain permalinks. if ( 'string' === typeof apiRoot && -1 !== apiRoot.indexOf( '?' ) ) { path = path.replace( '?', '&' ); } url = apiRoot + path; } // If ?_wpnonce=... is present, no need to add a nonce header. addNonceHeader = ! ( options.data && options.data._wpnonce ); addAcceptHeader = true; headers = options.headers || {}; for ( headerName in headers ) { if ( ! headers.hasOwnProperty( headerName ) ) { continue; } // If an 'X-WP-Nonce' or 'Accept' header (or any case-insensitive variation // thereof) was specified, no need to add the header again. switch ( headerName.toLowerCase() ) { case 'x-wp-nonce': addNonceHeader = false; break; case 'accept': addAcceptHeader = false; break; } } if ( addNonceHeader ) { // Do not mutate the original headers object, if any. headers = $.extend( { 'X-WP-Nonce': wpApiSettings.nonce }, headers ); } if ( addAcceptHeader ) { headers = $.extend( { 'Accept': 'application/json, */*;q=0.1' }, headers ); } if ( typeof method === 'string' ) { method = method.toUpperCase(); if ( 'PUT' === method || 'DELETE' === method ) { headers = $.extend( { 'X-HTTP-Method-Override': method }, headers ); method = 'POST'; } } // Do not mutate the original options object. options = $.extend( {}, options, { headers: headers, url: url, method: method } ); delete options.path; delete options.namespace; delete options.endpoint; return options; }; apiRequest.transport = $.ajax; /** @namespace wp */ window.wp = window.wp || {}; window.wp.apiRequest = apiRequest; } )( jQuery );
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
codemirror | Folder | 0755 |
|
|
crop | Folder | 0755 |
|
|
dist | Folder | 0755 |
|
|
imgareaselect | Folder | 0755 |
|
|
jcrop | Folder | 0755 |
|
|
jquery | Folder | 0755 |
|
|
mediaelement | Folder | 0755 |
|
|
plupload | Folder | 0755 |
|
|
swfupload | Folder | 0755 |
|
|
thickbox | Folder | 0755 |
|
|
tinymce | Folder | 0755 |
|
|
admin-bar.js | File | 10.3 KB | 0644 |
|
admin-bar.min.js | File | 3.41 KB | 0644 |
|
api-request.js | File | 3.25 KB | 0644 |
|
api-request.min.js | File | 1023 B | 0644 |
|
autosave.js | File | 21.95 KB | 0644 |
|
autosave.min.js | File | 5.67 KB | 0644 |
|
backbone.js | File | 78.51 KB | 0644 |
|
backbone.min.js | File | 23.71 KB | 0644 |
|
clipboard.js | File | 26.18 KB | 0644 |
|
clipboard.min.js | File | 8.8 KB | 0644 |
|
colorpicker.js | File | 28.4 KB | 0644 |
|
colorpicker.min.js | File | 16.13 KB | 0644 |
|
comment-reply.js | File | 12.22 KB | 0644 |
|
comment-reply.min.js | File | 2.96 KB | 0644 |
|
customize-base.js | File | 25.22 KB | 0644 |
|
customize-base.min.js | File | 7.67 KB | 0644 |
|
customize-loader.js | File | 7.72 KB | 0644 |
|
customize-loader.min.js | File | 3.47 KB | 0644 |
|
customize-models.js | File | 6.66 KB | 0644 |
|
customize-models.min.js | File | 3.59 KB | 0644 |
|
customize-preview-nav-menus.js | File | 14.67 KB | 0644 |
|
customize-preview-nav-menus.min.js | File | 4.92 KB | 0644 |
|
customize-preview-widgets.js | File | 22.71 KB | 0644 |
|
customize-preview-widgets.min.js | File | 7.64 KB | 0644 |
|
customize-preview.js | File | 27.3 KB | 0644 |
|
customize-preview.min.js | File | 10.45 KB | 0644 |
|
customize-selective-refresh.js | File | 32.55 KB | 0644 |
|
customize-selective-refresh.min.js | File | 10.44 KB | 0644 |
|
customize-views.js | File | 4.95 KB | 0644 |
|
customize-views.min.js | File | 2.39 KB | 0644 |
|
heartbeat.js | File | 23.49 KB | 0644 |
|
heartbeat.min.js | File | 5.81 KB | 0644 |
|
hoverIntent.js | File | 7.06 KB | 0644 |
|
hoverIntent.min.js | File | 1.46 KB | 0644 |
|
hoverintent-js.min.js | File | 1.68 KB | 0644 |
|
imagesloaded.min.js | File | 5.39 KB | 0644 |
|
json2.js | File | 17.99 KB | 0644 |
|
json2.min.js | File | 3.07 KB | 0644 |
|
masonry.min.js | File | 23.57 KB | 0644 |
|
mce-view.js | File | 25.24 KB | 0644 |
|
mce-view.min.js | File | 9.54 KB | 0644 |
|
media-audiovideo.js | File | 24.39 KB | 0644 |
|
media-audiovideo.min.js | File | 11.78 KB | 0644 |
|
media-editor.js | File | 28.44 KB | 0644 |
|
media-editor.min.js | File | 10.63 KB | 0644 |
|
media-grid.js | File | 26.18 KB | 0644 |
|
media-grid.min.js | File | 12.95 KB | 0644 |
|
media-models.js | File | 42.74 KB | 0644 |
|
media-models.min.js | File | 12.98 KB | 0644 |
|
media-views.js | File | 266.87 KB | 0644 |
|
media-views.min.js | File | 108.02 KB | 0644 |
|
quicktags.js | File | 22.07 KB | 0644 |
|
quicktags.min.js | File | 10.87 KB | 0644 |
|
shortcode.js | File | 10.51 KB | 0644 |
|
shortcode.min.js | File | 2.58 KB | 0644 |
|
swfobject.js | File | 9.99 KB | 0644 |
|
tw-sack.js | File | 4.85 KB | 0644 |
|
tw-sack.min.js | File | 3.21 KB | 0644 |
|
twemoji.js | File | 32.16 KB | 0644 |
|
twemoji.min.js | File | 15.42 KB | 0644 |
|
underscore.js | File | 67.12 KB | 0644 |
|
underscore.min.js | File | 18.44 KB | 0644 |
|
utils.js | File | 4.56 KB | 0644 |
|
utils.min.js | File | 1.82 KB | 0644 |
|
wp-ajax-response.js | File | 3.75 KB | 0644 |
|
wp-ajax-response.min.js | File | 2.45 KB | 0644 |
|
wp-api.js | File | 45.88 KB | 0644 |
|
wp-api.min.js | File | 14.34 KB | 0644 |
|
wp-auth-check.js | File | 4.11 KB | 0644 |
|
wp-auth-check.min.js | File | 1.62 KB | 0644 |
|
wp-backbone.js | File | 14.88 KB | 0644 |
|
wp-backbone.min.js | File | 2.97 KB | 0644 |
|
wp-custom-header.js | File | 10.22 KB | 0644 |
|
wp-custom-header.min.js | File | 4.34 KB | 0644 |
|
wp-embed-template.js | File | 6.62 KB | 0644 |
|
wp-embed-template.min.js | File | 3.1 KB | 0644 |
|
wp-embed.js | File | 3.14 KB | 0644 |
|
wp-embed.min.js | File | 1.22 KB | 0644 |
|
wp-emoji-loader.js | File | 11.92 KB | 0644 |
|
wp-emoji-loader.min.js | File | 2.86 KB | 0644 |
|
wp-emoji-release.min.js | File | 18.29 KB | 0644 |
|
wp-emoji.js | File | 8.76 KB | 0644 |
|
wp-emoji.min.js | File | 2.82 KB | 0644 |
|
wp-list-revisions.js | File | 970 B | 0644 |
|
wp-list-revisions.min.js | File | 597 B | 0644 |
|
wp-lists.js | File | 24.72 KB | 0644 |
|
wp-lists.min.js | File | 7.34 KB | 0644 |
|
wp-pointer.js | File | 9.99 KB | 0644 |
|
wp-pointer.min.js | File | 3.54 KB | 0644 |
|
wp-sanitize.js | File | 1.32 KB | 0644 |
|
wp-sanitize.min.js | File | 458 B | 0644 |
|
wp-util.js | File | 4.57 KB | 0644 |
|
wp-util.min.js | File | 1.39 KB | 0644 |
|
wpdialog.js | File | 569 B | 0644 |
|
wpdialog.min.js | File | 281 B | 0644 |
|
wplink.js | File | 20.74 KB | 0644 |
|
wplink.min.js | File | 11.05 KB | 0644 |
|
zxcvbn-async.js | File | 821 B | 0644 |
|
zxcvbn-async.min.js | File | 351 B | 0644 |
|
zxcvbn.min.js | File | 802.97 KB | 0644 |
|