За последние 24 часа нас посетили 16926 программистов и 1299 роботов. Сейчас ищут 1467 программистов ...

не отправляются данные через ajax

Тема в разделе "JavaScript и AJAX", создана пользователем Lina96, 21 авг 2020.

  1. Lina96

    Lina96 Новичок

    С нами с:
    21 авг 2020
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте! Отправляю данные с помощью ajax, но через var_dump или print_r выводится пустой массив. подскажите, пожалуйста, из-за чего это может быть. Заранее благодарю!
    Код (Javascript):
    1. function ajax(url, method, functionName, dataArray) {
    2.     let xhttp = new XMLHttpRequest();
    3.     xhttp.responseType ="json";
    4.     xhttp.open(method, url, true);
    5.     xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    6.     xhttp.send(dataArray);
    7.     xhttp.onreadystatechange = function () {
    8.         if (this.readyState == 4 && this.status == 200) {
    9.             functionName(this);
    10.         }
    11.     }
    12. }
    13. function requestData(dataArr) {
    14.     let out = '';
    15.     for (let key in dataArr) {
    16.         out += `${key}=${dataArr[key]}&`;
    17.     }
    18.     console.log(out);
    19.     return out;
    20. }
    21. let data = {
    22.     "name": "Sasha",
    23.     "age": 22
    24. }
    25. ajax('data.php','POST', check, data);
    26. function check(){
    27. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.859
    Симпатии:
    749
    Адрес:
    Татарстан
    А чего так сложно то?
    Чего не через jquery ,axis ,или fetch ?
    Там одной функцией все делается
     
  3. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Код (Javascript):
    1. function postAjax(url, data, success) {
    2.     var log = false;
    3.     var params = typeof data == 'string' ? data : Object.keys(data).map(
    4.             function(k){ return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) }
    5.         ).join('&');
    6.  
    7.     var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    8.     xhr.open('POST', url);
    9.     xhr.onreadystatechange = function() {
    10.         if (xhr.readyState>3 && xhr.status==200) { success(xhr.responseText); }
    11.         if (xhr.status==500) {
    12.  
    13.             if( xhr.responseText.length !== 0 && log === false){
    14.  
    15.                console.log(xhr.responseText);
    16.             }
    17.         };
    18.     }
    19.     xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    20.     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    21.     xhr.send(params);
    22.     return xhr;
    23. }
    Код (Javascript):
    1. postAjax('data.php', data, function(result){
    2.      console.log(result);
    3. });
     
    TeslaFeo нравится это.
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.840
    Симпатии:
    651
    @Lina96, в data какая-то «фигня».
    --- Добавлено ---
    Обычно там сырые данные в URL- или multipart/form-data-формате (в зависимости от Content-Type). Также, чтобы вручную не кодировать multipart/form-data, можно использовать для этого параметра FormData.
     
  5. Lina96

    Lina96 Новичок

    С нами с:
    21 авг 2020
    Сообщения:
    5
    Симпатии:
    0
    Спасибо, но не стало лучше. В network видно, что данные передались, но на страницу все равно выводится пустой массив
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.840
    Симпатии:
    651
    На какую страницу? Вы же на сервер данные передаете. И если хотите читать сырые данные непонятного формата, читайте их из php://input (https://www.php.net/manual/en/wrappers.php.php).
     
  7. Lina96

    Lina96 Новичок

    С нами с:
    21 авг 2020
    Сообщения:
    5
    Симпатии:
    0
    Я недавно начала все это изучать и не совсем поняла, что в той ссылке, но вот что я имела ввиду mass.png mass2.png
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.840
    Симпатии:
    651
    Проверяйте, что приходит на сервер, а не что вы пытаетесь отправить с клиента.
     
  9. Lina96

    Lina96 Новичок

    С нами с:
    21 авг 2020
    Сообщения:
    5
    Симпатии:
    0
    с помощью var_dump (file_get_contents('php://input')); выводится string (0)""
     
  10. Lina96

    Lina96 Новичок

    С нами с:
    21 авг 2020
    Сообщения:
    5
    Симпатии:
    0
    нашла урок, все полностью повторила и все равно не получается получить данные никаким образом. хотя в ролике все срабатывает