AJAX запрос от Chrome Расширение на сайт Wordpress - PullRequest
0 голосов
/ 20 января 2020

Я разработал расширение chrome, которое извлекает некоторые данные со страницы посещения пользователя, и я хочу передать их в свою базу данных с помощью вызова AJAX (мой веб-сайт - базовый c WordPress-сайт).

Дело в том, что ответ ajax - это ошибка 400, и я не понимаю, в чем проблема, поскольку я пытался изменить мой запрос ajax как можно лучше.

Вот мой AJAX запрос из содержимого. js


/* Popup clicked */

$('#myOwnCustomToolBar_TT91 #message_to_click form.groupio_form #subscribe').on('click', function(){

    //chrome.runtime.sendMessage(product_infos);

    jQuery.ajax({

        type:"POST",
        url: "https://www.groupio.fr/wp-admin/admin-ajax.php",
        contentType: 'application/json',
        dataType: "JSON",
        responseType:'application/json',

        data: {
            action : "itempricingfunction",
            ean : "EANTEST0101010"
        },

        crossDomain:true,

        success:function(data){

            alert(data);

        },

        error: function(errorThrown){
            console.log(errorThrown);
        }
    });



});

Вот моя функция, называемая itempricingfunction внутри функций. php Файл моего файла WordPress темы

function itempricingfunction(){


$product_ean = (isset($_POST['ean'])) ? htmlentities($_POST['ean']) : NULL;
echo json_encode(array('product_ean' =>$product_ean));


    exit;
}

add_action("wp_ajax_nopriv_itempricingfunction", "itempricingfunction");
add_action("wp_ajax_itempricingfunction", "itempricingfunction");

И, наконец, когда я go на страницу продукта и нажмите на расширение chrome, ответ на вызов ajax - Ошибка 400 (см. Изображение ниже):

[AJAX Ответ из Wordpress] [ 1]

Большое спасибо за помощь!

РЕДАКТИРОВАТЬ после попытки переместить ajax вызов в фоновый режим. js:

Манифест. json


{
  "manifest_version": 2,
  "name": "XXXX Extension",
  "version": "1.0",
  "description": "The best extension for my friends",

  "icons":{
    "128" : "images/icon128.png",
    "48" : "images/icon48.png",
    "16" : "images/icon16.png"
  },


  "background": {
    "scripts": ["js/jquery-3.4.1.min.js", "js/background.js"]
  },


  "permissions": [
        "contextMenus",
        "activeTab",
        "tabs",
        "notifications",
        "https://www.groupio.fr/"
  ],

  "content_scripts": [
  {
    "matches": ["https://www.rddddd.fr/produit/*"],
    "css": ["css/extension_style.css"],
    "js": ["js/jquery-3.4.1.min.js", "js/content.js"]
  }
  ],

  "browser_action": {
   "default_icon": "images/icon16.png",
   "default_title": "Tayfun Extension",
   "default_popup": "popup.html"
  },

    "web_accessible_resources": [

      "toolbar.html",
      "css/extension_style.css",
      "images/logo_extension.png",
      "images/rollback_arrow.png"
  ]

}


Вот новый контент. js файл:

/* Popup clicked */

$('#myOwnCustomToolBar_TT91 #message_to_click form.groupio_form #subscribe').on('click', function(){

    chrome.runtime.sendMessage(product_infos);


});

Вот новый фон. js файл:


chrome.runtime.onMessage.addListener(function(response, sender, sendResponse){

        jQuery.ajax({

        type:"POST",
        url: "https://www.groupio.fr/wp-admin/admin-ajax.php",
        contentType: 'json',
        dataType: "JSON",
        responseType:'json',

        data: {
            action : "itempricingfunction",
            ean : "EANTEST0101010"
        },

        success:function(data){

            alert(data);

        },

        error: function(errorThrown){
            console.log(errorThrown);
        }
        });

});

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