Wordpress возвращает 400 неверных запросов на вызов ajax с API выборки - PullRequest
0 голосов
/ 13 января 2019

Я делаю Ajax-вызов к admin-ajax.php с синтаксисом API выборки. Вот код, который вызывает внутренний скрипт:

fetch(ajax_obj.ajaxurl, {
    method: "POST",
    mode: "cors",
    cache: "no-cache",
    credentials: "same-origin",
    body: JSON.stringify(this.data),
    headers: {
      "Content-Type": "application/json"
    }
  })

и получение ответа 400 Bad Request.

Может кто-нибудь сказать мне, где этот запрос не так?

При проверке средств разработки сети в chrome я вижу, что отправленное тело в порядке, URL-адрес также в порядке ... ... и, насколько я знаю, коды состояния 4xx относятся к ошибкам на клиенте, поэтому я даже не смотрю код на стороне сервера ... если я ошибаюсь, пожалуйста, дайте мне отзыв об этом ...

На самом деле, у меня был вызов jQuery ajax, подобный этому:

this.data = {
              'action': 'ajax_product_query',
              'locations': this.locations,
              'type': this.category != '' ? this.category : [],
              'all-locations': this.filters['locationFilter'].all.checked,
              'page': ajax_obj.current_page
            };

          $.ajax({
            url: ajax_obj.ajaxurl,
            method: 'post',
            dataType: 'json',
            data: this.data,
            beforeSend: function(xhr) {
              button.innerHTML = 'Loading...';
            },
            success: (data) => {  ...

... и это сработало как шарм ...

Тогда, желая удалить зависимость jQuery, захотел превратить ajax-вызов jQuery в синтаксис Fetch API следующим образом:

fetch(ajax_obj.ajaxurl, {
    method: "POST",
    mode: "cors",
    cache: "no-cache",
    credentials: "same-origin",
    body: JSON.stringify(this.data),
    headers: {
      "Content-Type": "application/json"
    }
  })
  .then(response => response.json()) ...

А потом запросы превратились в 400 плохих запросов ...

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...