[API] Hai ví dụ sử dụng Authentication để chỉnh sửa tiêu đề bài viết bằng Ajax (ok)

Ví dụ 1:

C:\xampp\htdocs\api\wp-content\themes\twentytwentyone\header.php

<script>
		jQuery(document).ready(function($) {
			alert('aaaaaaa');
		  $.ajax({
		    url: wpApiSettings.root + 'wp/v2/posts/1742',
		    method: 'POST',
		    beforeSend: function(xhr) {
		      xhr.setRequestHeader('X-WP-Nonce', wpApiSettings.nonce);
		    },
		    data: {
		      'title': 'Hello Moon'
		    }
		  }).done(function(response) {
		    console.log(response);
		  });
		});
	</script>

C:\xampp\htdocs\api\wp-content\themes\twentytwentyone\functions.php

// Responsive embeds script.
	wp_enqueue_script(
		'twenty-twenty-one-responsive-embeds-script',
		get_template_directory_uri() . '/assets/js/responsive-embeds.js',
		array( 'twenty-twenty-one-ie11-polyfills' ),
		wp_get_theme()->get( 'Version' ),
		true
	);
	wp_localize_script( 'twenty-twenty-one-responsive-embeds-script', 'wpApiSettings', array(
    'root' => esc_url_raw( rest_url() ),
    'nonce' => wp_create_nonce( 'wp_rest' )
	) );

Ví dụ 2:

jQuery.ajax({
   url: 'http://localhost/api/wp-json/wp/v2/posts/wp-json/wp/v2/posts/50',
   method: 'DELETE',
   crossDomain: true,
   beforeSend: function ( xhr ) {
       xhr.setRequestHeader( 'Authorization', 'Basic ' + Base64.encode( 'wordpress:wordpress' ) );
   },
   success: function( data, txtStatus, xhr ) {
       console.log( data );
       console.log( xhr.status );
   }

Trong yêu cầu trên, tôi đã đặt tiêu đề Ủy quyền bằng cách sử dụng setRequestHeader () cho đối tượng xhr được truyền dưới dạng đối số cho phương thức beforeSend ().

Ngoài yêu cầu trên, tiêu đề Access-Control-Allow-Headers phải cho phép trường Ủy quyền trên máy chủ. Điều này có thể được kích hoạt bằng cách thêm dòng sau vào tệp .htaccess của WordPress:

Header always set Access-Control-Allow-Headers Authorization Header always set

Đọc thêm: https://www.cloudways.com/blog/setup-basic-authentication-in-wordpress-rest-api/

Last updated