Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532

AJAX отправляет пустой POST?

27.08.2018, 18:44. Показов 3763. Ответов 11
Метки ajax (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Есть AJAX код, который отправляет post данные в php файл. Поставил var_dump($_POST) в php файле, но он показывает пустые массивы, т.е. массив пуст. Это значит, что AJAX отправляет пустые данные. В чем проблема?
Вот код AJAX:
JavaScript
1
function(e){try{var i,a,d,h,y,b;return e.preventDefault(),$.now()-l<s?void r(t.error,t.interval):(d=[],f.each(function(e){try{var n;if("checkbox-input"===g.fields[e].type?g.fields[e].value=$(this).find("input").prop("checked")?c:u:"radio-list"===g.fields[e].type?g.fields[e].value=$(this).find("[type=radio]:checked").val()||"":"select-menu"===g.fields[e].type?g.fields[e].value=$(this).find("select").val():"hidden"===g.fields[e].type?(g.fields[e].name=g.fields[e].id,g.fields[e].value=$(this).find("input").val()):"file"===g.fields[e].type?g.fields[e].value=$(this).data("result")||"":(n=$(this).find(".form-control").data("placeholder"),g.fields[e].value=n?"":$(this).find(".form-control").val()),g.fields[e].required&&""===g.fields[e].value&&d.push(t.required.replace("%field%",g.fields[e].name)),""===g.fields[e].value)return;if("email"!==g.fields[e].type||/.+@.+\..+/.test(g.fields[e].value)||d.push(t.email.replace("%field%",g.fields[e].name)),"phone"===g.fields[e].type&&!/.*\d.*\d.*\d.*\d.*/.test(g.fields[e].value))return d.push(t.phone.replace("%field%",g.fields[e].name))}catch(r){error_handler(r,"red libs 21",arguments.callee)}}),"checkbox"===m.privacy&&(i=p.closest(".body").find(".agreement-checkbox input").prop("checked"),h=m.privacy_checkbox.replace(/[<>]/g,""),i===!1&&d.push(t.required.replace("%field%",h))),d.length>0?(p.trigger("error"),void r(t.validate,d.join("\n"))):(b={name:"",phone:"",email:"",count:"",fields:{},item:{},send:g,items:[]},_.each(g.fields,function(e){try{var t;if(""===b[e.type]&&(b[t=e.type]||(b[t]=e.value)),!b.fields[e.name])return b.fields[e.name]=e.value}catch(n){error_handler(n,"red libs 22",arguments.callee)}}),_.each(g.item,function(e){try{var t,n;return(t=b.item)[n=e.type]||(t[n]=_.escape(e.value))}catch(r){error_handler(r,"red libs 23",arguments.callee)}}),_.each(g.items,function(e,t){try{return b.items[t]={},_.each(e,function(e){try{var n,r,i,o;"amount"===e.type||"photo"===e.type?(n=b.items[t])[i=e.type]||(n[i]=e.value):(r=b.items[t])[o=e.type]||(r[o]=_.escape(e.value))}catch(a){error_handler(a,"red libs 25",arguments.callee)}})}catch(n){error_handler(n,"red libs 24",arguments.callee)}}),m.payPrice&&!b.items.length&&b.items.push({amount:1,price:m.payPrice,title:m.payTitle}),n.prop("disabled",!0),y=function(e,i,a){try{var l,u,c,d;return _.defaults(e,b),console.log("Данные формы",{time:e.time,name:e.name,email:e.email,phone:e.phone,count:e.count,fields:e.fields,item:e.item,items:e.items}),n.prop("disabled",!1),0===e.result?(r(t.error,e.errors),p.trigger("error")):1===e.result?(p.trigger("done"),d=n.data("ym_goal"),window.yaCounter&&yaCounter.reachGoal(d),u=n.data("ga_category"),l=n.data("ga_action"),window.ga&&ga("send","event",u,l),"msg"===m.after?o(_.template(m.msg,e),null):"url"===m.after?location.href=_.template(m.url,e):"addhtml"===m.after?$("body").append(_.template(m.addhtml,e)):"pay"===m.after?e.url?location.href=e.url:e.form&&$(e.form).hide().appendTo("body").submit():"msg+url"===m.after?o(_.template(m.msg,e),null,function(){try{return location.href=_.template(m.url,e)}catch(t){error_handler(t,"red libs 27",arguments.callee)}}):"msg+pay"===m.after?o(_.template(m.msg,e),null,function(){try{if(e.url)return location.href=e.url;if(e.form)return $(e.form).hide().appendTo("body").submit()}catch(t){error_handler(t,"red libs 28",arguments.callee)}}):"msg+addhtml"===m.after?o(_.template(m.msg,e),null,function(){try{return $("body").append(_.template(m.addhtml,e))}catch(t){error_handler(t,"red libs 29",arguments.callee)}}):"js"===m.after&&(c="(function () { var time = <%= time %>; var name = '<%- name %>'; var email = '<%- email %>'; var phone = '<%- phone %>'; var count = '<%- count %>'; var fields = <%= JSON.stringify(fields) %>; var item = <%= JSON.stringify(item) %>; var items = <%= JSON.stringify(items) %>; var send = <%= JSON.stringify(send) %>;"+m.js+"})();",$.globalEval(_.template(c,e)))):(r(t.error,null),p.trigger("error")),p.trigger("reset").find("[data-placeholder]").data("placeholder",!0),v.length&&plp.cart.empty(),plp.modal.closeAll(),s=$.now()}catch(f){error_handler(f,"red libs 26",arguments.callee)}},a=function(e,i,o){try{return p.trigger("error"),n.prop("disabled",!1),r(t.error,400===e.status?e.responseText:null),s=$.now()}catch(a){error_handler(a,"red libs 30",arguments.callee)}},$.ajax("/app/c.php",{type:"POST",data:JSON.stringify(g),dataType:"json",contentType:"application/json",processData:!1,success:y,error:y})))}
Вот HTML:
HTML5
1
<div class="modal-body"><div class="macros-form"><div class="outer"><div class="inner"><div class="vertical none size-default"><div class="body"><div class="cont"></div><form class="form text-top" data-form="{&quot;name&quot;:&quot;Виджет \&quot;Кнопка\&quot;&quot;,&quot;type&quot;:&quot;order&quot;,&quot;privacy&quot;:&quot;none&quot;,&quot;privacy_checkbox&quot;:&quot;Даю согласие на <обработку персональных данных>&quot;,&quot;after&quot;:&quot;msg&quot;,&quot;msg&quot;:&quot;Спасибо!\nВаша заявка отправлена.\nВ ближайшее время мы с Вами свяжемся!&quot;,&quot;url&quot;:&quot;/&quot;,&quot;addhtml&quot;:&quot;&quot;,&quot;js&quot;:&quot;alert(\&quot;Этот код выполняется после успешного отправления заявки.\&quot;);&quot;,&quot;integrations&quot;:[]}" data-fields="[{&quot;name&quot;:&quot;Имя&quot;,&quot;type&quot;:&quot;name&quot;,&quot;required&quot;:false,&quot;id&quot;:&quot;&quot;},{&quot;name&quot;:&quot;Телефон&quot;,&quot;type&quot;:&quot;phone&quot;,&quot;required&quot;:true,&quot;id&quot;:&quot;&quot;}]"><div class="fields"><div class="field" data-type="name"><div class="name">Имя</div><div class="input"><input class="form-control text" style="border-radius: 4px;"></div></div><div class="field" data-type="phone"><div class="name">Телефон<span class="required">&nbsp;*</span></div><div class="input"><input class="form-control text" style="border-radius: 4px;"></div></div></div><div class="macros-button"><div class="btn-out full xs-none"><div class="btn-inner"><button class="btn font-text submit" id="uid12" data-ym_goal="" data-ga_category="" data-ga_action=""><span class="text">Отправить заявку!</span><input type="submit"></button></div></div></div></form><div class="cont"></div></div></div></div></div></div></div>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2018, 18:44
Ответы с готовыми решениями:

$.ajax не отправляет запрос
Здравствуйте, подскажите, пожалуйста, в чем ошибка session_start(); $_SESSION=$_POST; echo $_SESSION; &lt;!DOCTYPE html&gt; ...

Explorer отправляет несколько post запросов вместо одного
Через мазилу и гуглхром работает нормально, но вот эхплорер11 почему-то шлёт по несколько запросов при одном нажатии на кнопку 'Отправить',...

Куда отправляет данные форма через AJAX
Здравствуйте, уважаемые форумчане! Такой весьма необычный вопрос: есть сайт smmplanner.com там в личном кабинете есть кнопка...

11
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
28.08.2018, 06:48
Риназ,

Потому что у инпута должен быть name: <input name="значение">
А у вас name со значением отсутствует --- ну это как минимум, пробуйте, дальше смотреть не стал.
И поправьте выложенные скрипты, выложите не в одну строку.
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
28.08.2018, 09:17  [ТС]
zlojnaxa, нет, дело не в name, т.к. можно получить значение и по id и по class. В моем случае это по class.
И проблема в ajax коде.
Если сделать так, то все работает:
JavaScript
1
2
3
4
5
$.ajax({
    url: "/app/c.php",
    data: g,
    type: 'POST'
})
Но он всегда выводит ошибку типа ошибка! сообщение не отправилось
Вот старый ajax, который правильно показывает результат(если ошибка, то показывает ошибку, если успешно, то успешно), но отправляет пустые post:
JavaScript
1
2
3
4
5
6
7
8
9
$.ajax("/app/c.php",{
type:"POST",
data:g,
dataType:"json",
contentType:"application/json",
processData:!1,
success:y,
error:y
})
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
28.08.2018, 09:37
Риназ,
Если вы не выложите код НЕ В ОДНУ строку, приведенный выше, лично я копаться там не стану, выложите код нормальный!
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
28.08.2018, 09:51  [ТС]
zlojnaxa, Вот:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
function(e){
    try{
        var i,a,d,h,y,b;
        return e.preventDefault(),
        $.now()-l<s?void r(t.error,t.interval):(d=[],
        f.each(function(e){
            try{
                var n;
                if("checkbox-input"===g.fields[e].type?g.fields[e].value=$(this).find("input").prop("checked")?c:u:"radio-list"===g.fields[e].type?g.fields[e].value=$(this).find("[type=radio]:checked").val()||"":"select-menu"===g.fields[e].type?g.fields[e].value=$(this).find("select").val():"hidden"===g.fields[e].type?(g.fields[e].name=g.fields[e].id,g.fields[e].value=$(this).find("input").val()):"file"===g.fields[e].type?g.fields[e].value=$(this).data("result")||"":(n=$(this).find(".form-control").data("placeholder"),g.fields[e].value=n?"":$(this).find(".form-control").val()),g.fields[e].required&&""===g.fields[e].value&&d.push(t.required.replace("%field%",g.fields[e].name)),""===g.fields[e].value)
                    return;
                if("email"!==g.fields[e].type||/.+@.+\..+/.test(g.fields[e].value)||d.push(t.email.replace("%field%",g.fields[e].name)),"phone"===g.fields[e].type&&!/.*\d.*\d.*\d.*\d.*/.test(g.fields[e].value))
                    return d.push(t.phone.replace("%field%",g.fields[e].name))
            }catch(r){
                error_handler(r,"red libs 21",arguments.callee)
            }
        }),
        "checkbox"===m.privacy&&(i=p.closest(".body").find(".agreement-checkbox input").prop("checked"),
        h=m.privacy_checkbox.replace(/[<>]/g,""),
        i===!1&&d.push(t.required.replace("%field%",h))),
        d.length>0?(p.trigger("error"),
        void r(t.validate,d.join("\n"))):(
            b={name:"",phone:"",email:"",count:"",fields:{},item:{},send:g,items:[]},
            _.each(g.fields,function(e){try{var t;if(""===b[e.type]&&(b[t=e.type]||(b[t]=e.value)),!b.fields[e.name])return b.fields[e.name]=e.value}catch(n){error_handler(n,"red libs 22",arguments.callee)}}),
            _.each(g.item,function(e){try{var t,n;return(t=b.item)[n=e.type]||(t[n]=_.escape(e.value))}catch(r){error_handler(r,"red libs 23",arguments.callee)}}),
            _.each(g.items,function(e,t){try{return b.items[t]={},_.each(e,function(e){try{var n,r,i,o;"amount"===e.type||"photo"===e.type?(n=b.items[t])[i=e.type]||(n[i]=e.value):(r=b.items[t])[o=e.type]||(r[o]=_.escape(e.value))}catch(a){error_handler(a,"red libs 25",arguments.callee)}})}catch(n){error_handler(n,"red libs 24",arguments.callee)}}),
            m.payPrice&&!b.items.length&&b.items.push({amount:1,price:m.payPrice,title:m.payTitle}),
            n.prop("disabled",!0),
            y=function(e,i,a){
                try{
                    var l,u,c,d;
                    return _.defaults(e,b),
                    console.log("Гђ”Гђ°ГђВЅГђВЅГ‘‹Гђµ Г‘„ГђВѕГ‘€ГђВјГ‘‹",{time:e.time,name:e.name,email:e.email,phone:e.phone,count:e.count,fields:e.fields,item:e.item,items:e.items}),
                    n.prop("disabled",!1),
                    0===e.result?(r(t.error,e.errors),
                    p.trigger("error")):1===e.result?(p.trigger("done"),
                    d=n.data("ym_goal"),
                    window.yaCounter&&yaCounter.reachGoal(d),
                    u=n.data("ga_category"),
                    l=n.data("ga_action"),
                    window.ga&&ga("send","event",u,l),
                    "msg"===m.after?o(_.template(m.msg,e),null):"url"===m.after?location.href=_.template(m.url,e):"addhtml"===m.after?$("body").append(_.template(m.addhtml,e)):"pay"===m.after?e.url?location.href=e.url:e.form&&$(e.form).hide().appendTo("body").submit():"msg+url"===m.after?o(_.template(m.msg,e),
                    null,function(){try{return location.href=_.template(m.url,e)}catch(t){error_handler(t,"red libs 27",arguments.callee)}}):"msg+pay"===m.after?o(_.template(m.msg,e),null,function(){try{if(e.url)return location.href=e.url;if(e.form)return $(e.form).hide().appendTo("body").submit()}catch(t){error_handler(t,"red libs 28",arguments.callee)}}):"msg+addhtml"===m.after?o(_.template(m.msg,e),
                    null,function(){try{return $("body").append(_.template(m.addhtml,e))}catch(t){error_handler(t,"red libs 29",arguments.callee)}}):"js"===m.after&&(c="(function () { var time = <%= time %>; var name = '<%- name %>'; var email = '<%- email %>'; var phone = '<%- phone %>'; var count = '<%- count %>'; var fields = <%= JSON.stringify(fields) %>; var item = <%= JSON.stringify(item) %>; var items = <%= JSON.stringify(items) %>; var send = <%= JSON.stringify(send) %>;"+m.js+"})();",
                    $.globalEval(_.template(c,e)))):(r(t.error,null),
                    p.trigger("error")),
                    p.trigger("reset").find("[data-placeholder]").data("placeholder",!0),
                    v.length&&plp.cart.empty(),
                    plp.modal.closeAll(),
                    s=$.now()
                }catch(f){error_handler(f,"red libs 26",arguments.callee)}
            },
            a=function(e,i,o){try{return p.trigger("error"),
            n.prop("disabled",!1),
            r(t.error,400===e.status?e.responseText:null),
            s=$.now()}catch(a){error_handler(a,"red libs 30",arguments.callee)}},
            $.ajax(
                "/app/c.php",
                {
                    type:"POST",
                    data:JSON.stringify(g),
                    dataType:"json",
                    contentType:"application/json",
                    processData:!1,
                    success:y,
                    error:y
                }
            )
        ))
    }
}
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
28.08.2018, 09:55
Цитата Сообщение от Риназ Посмотреть сообщение
Вот:
Ну вот теперь ждите, может кто-то и станет копаться в этом "мессиво"

Добавлено через 48 секунд
Риназ,

Вы name-ы пробовали указать как я вам выше советовал?
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
28.08.2018, 10:02  [ТС]
zlojnaxa, я же писал выше, дело не в name.
Цитата Сообщение от Риназ Посмотреть сообщение
zlojnaxa, нет, дело не в name, т.к. можно получить значение и по id и по class. В моем случае это по class.
И проблема в ajax коде.
Если сделать так, то все работает:
JavaScript
1
2
3
4
5
$.ajax({
* * url: "/app/c.php",
* * data: g,
* * type: 'POST'
})
Но он всегда выводит ошибку типа ошибка! сообщение не отправилось
Вот старый ajax, который правильно показывает результат(если ошибка, то показывает ошибку, если успешно, то успешно), но отправляет пустые post:
JavaScript
1
2
3
4
5
6
7
8
9
$.ajax("/app/c.php",{
type:"POST",
data:g,
dataType:"json",
contentType:"application/json",
processData:!1,
success:y,
error:y
})
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
28.08.2018, 10:03
Риназ,

Вы так и не ответили на мой вопрос?
Цитата Сообщение от zlojnaxa Посмотреть сообщение
Вы name-ы пробовали указать
0
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 532
28.08.2018, 10:09  [ТС]
zlojnaxa, да, пробовал.
Вы вообще сравнили эти два кода? У них date одинаковый, т.е. отправляют тоже самое, вот только первый код отправляет post, а второй нет
Отправляет post:
JavaScript
1
2
3
4
5
6
7
8
9
$.ajax("/app/c.php",{
type:"POST",
data:g,
dataType:"json",
contentType:"application/json",
processData:!1,
success:y,
error:y
})
Отправляет пустой post:
JavaScript
1
2
3
4
5
$.ajax({
    url: "/app/c.php",
    data: g,
    type: 'POST'
})
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
28.08.2018, 10:14
Цитата Сообщение от Риназ Посмотреть сообщение
Вы вообще сравнили эти два кода?
Нет и не собираюсь. Меня интересовал ответ на мой вопрос, на который вы ответили. К сожалению я больше ничем помочь не могу.
0
 Аватар для 6elka1703
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
28.08.2018, 23:46
Риназ, что такое g? Если это переменная то создайте нормальный параметр
JavaScript
1
data:{param:g}
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
29.08.2018, 15:38
6elka1703, зачем? g - это вероятнее всего объект с данными для передачи. Код минимизирован, так что разобраться в нём если и возможно, то слишком долго.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2018, 15:38
Помогаю со студенческими работами здесь

AJAX и POST
ajax.js function createObject() { var request_type; var browser = navigator.appName; if(browser == &quot;Microsoft Internet Explorer&quot;){ ...

Ajax post- запрос
Пытаюсь отправить картинку post - запросом (картинка находится на моем сервере) Если картинка была отправлена, то вернется ответ в json...

Не работает ajax POST-запрос
Доброго времени суток. Есть страница, на которой расположена кнопка для создания формы в новом окне, посредством которой должно...

Ajax не принимает ответ на post-запрос
Здравствуйте. Посылаю POST-запрос на чистом ajax php-сценарию. В php-файле происходит выборка из базы, формирование вывода и, собственно,...

Отправка запроса POST ajax, php
Доброго времени суток, я в js не так хорошо понимаю, и создаю данную тему что бы показали пример... И так вот вопрос, Есть вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru