You’re using an invalid Content-Type header.
x-www-form-urlencoded isn’t a valid content-type.
The correct content type is application/x-www-form-urlencoded.
Essentially, the web server doesn’t know how to handle the content type you’re giving it to parse the parameters. This is why the request is failing with a 400 because WP is not getting anything in the POST body, including the action.
You may not need to provide this header at all though as it seems to be the default value.
Related Posts:
- Query WP REST API v2 by multiple meta keys
- Prevent 404 when using pre_get_posts to filter an archive page
- AJAX filter posts on click based on category
- How can I send data to admin-ajax via JS Fetch?
- Shortcodes not resolved in AJAX call response
- Ajax, filters and shortcodes
- Multiple Ajax Data Action
- Multiple filters for wp_get_archive
- How to change the order (priority) of registered filters (or actions) (e.g. for the_content)?
- Are there actions or filters I can use for Ajax calls?
- Does a plugin with a AJAX button filter exist? [closed]
- Sorting a specific taxonomy by archive date using URL
- wp_mail works with add_action(‘save_post’, …) but not an ajax action
- Is it possible to bind a function to a filter hook via Ajax?
- How To Override A WooCommerce AJAX Function
- Best practice: Custom Post Type / Filter / Load more
- Ajax filter – show all results that contain at least one filter
- AJAX Post Filter
- Archive Widget – Count only parent posts
- Display post after choice two taxonomy terms
- Ajax Filtering Pagination
- Modify category listing API response
- Change add_filter based on Ajax
- Filter posts by categories ajax is showing all the posts
- Filter WordPress Archive Widget to exclude posts with specific custom taxonomy term id
- URL to filter posts by post meta similar to shop/?product_cat=”painting”
- Code restricted to dashboard, running unexpectedly in the frontend (pre_get_post and admin-ajax.php)
- Hide a specific post from Archive Feed
- Post filter Month dropdown at front-end like wordpress backend
- How would I remove an inline googleAPI font script in the the parent theme header.php?
- Loading a sidebar on an Ajax call
- How could I create real-time filtering in this case?
- Disable emojicons introduced with WP 4.2
- How to remove a filter that is an anonymous object?
- Difference Between Filter and Action Hooks?
- WordPress hooks/filters insert before content or after title
- How to add defer=”defer” tag in plugin javascripts?
- add_action(), add_filter() before or after function
- apply_filters(‘the_content’, $content) vs do_shortcode($content)
- How do filters and hooks really work in PHP
- How to create an API for my plugin?
- Trouble understanding apply_filters()
- What is the very earliest action hook you can call?
- How would one modify the filtering Gutenberg applies to pasted content?
- How can I modify the WordPress default widget output?
- Add custom options to the wplink dialog
- Remove classes from body_class
- what is __return_false in filters
- Explanation for apply_filters function and its variables
- Gutenberg: Is there a way to know if current block is inside InnerBlocks?
- How to reorder billing fields in WooCommerce Checkout template? [closed]
- Insert HTML just after tag
- the_content and is_main_query
- Changing WooCommerce Display Price Based on User Role & Category [closed]
- How to add a custom CSS class to core blocks in Gutenberg editor?
- How to show page content in feed?
- wp_headers vs send_headers. When to use each?
- Filter any HTTP request URI?
- How to Pass External Variables to Filters/Actions
- How to filter users on admin users page by custom meta field?
- Filter by one custom field, order by another?
- Not able to change wp_title using add_filter
- How to appending to the_content using add_filter with custom post type?
- No filter of code on switch from html to visual editor, how?
- Sanitize and data validation with apply_filters() function
- How to modify posts_where filter only for the search query
- How to hook a filter to catch get_post_meta when alternate a custom field output?
- How to get shortcode’s input values inside a filter?
- Removing Image and Caption Dimension Attributes
- How to wrap oEmbed-embedded video in DIV tags inside the_content?
- How to bulk delete all users with no posts?
- How many filter/action hooks are healthy?
- WordPress 3.9 – Trouble Editing TinyMCE 4.0
- Changing JPEG compression depending on image size
- How to add filter with 2 args?
- Why is javascript allowed in my post content?
- How to use update_{$meta_type}_metadata filter to modify meta value
- AJAX with loop filtering categories
- How to wrap an element around an iframe or embed in content automatically?
- Filter specific shortcode output?
- WordPress Internal @ Mentions
- How to add headers to outgoing email?
- Is there a JavaScript API? How to access public and private data in JS?
- Earliest hook to reliably get $post/$posts
- Insert new element to array with add_filter
- LESS CSS enqueue_style with add_filter to change rel attribute
- Is it possible to filter comments in a post so a user can only see the comments they have written?
- How to pass/get data to/from the WooCommerce data-product_variations object?
- Remove Editor From Homepage
- How to modify Contact Form 7 Success/Error Response Output [closed]
- Where to hook into post content?
- What does (10, 2) mean when used with add_filter
- Filter translations (gettext strings) on specific admin pages
- Filter username field on registration for profanity and unwanted words
- Clarification on filters and hooks
- remove_filter( ‘the_content’, ‘wpautop’ ); only for certain post types
- At what priority does add_filter overwrite core functions?
- Valid characters for actions, hooks and filters
- is it possible to add “extra” table nav to edit-tags.php screens?
- Advanced Custom Fields and Yoast SEO keyword analysis [closed]