Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » HTML код не проходит через AJAX POST

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нижестоящий HTML код не проходит через AJAX POST
может кто поможет решить проблему ?
 

Код:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA  
 AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO  
 9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

 
Добавлено:
encodeURIComponent() не срабатывает

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 13:47 07-03-2016
bordellinoff

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
@vs6262
 
попробовал и с $.post и с $.ajax -- всё прекрасно работает.
если выводятся ошибки, то неплохо было бы посмотреть на них, да и на ajax код тоже.

Всего записей: 50 | Зарегистр. 13-10-2013 | Отправлено: 16:12 13-03-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
function getXMLObject()  //XML OBJECT
{
   var xmlHttp = false;
   try {
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")  // For Old Microsoft Browsers
   }
   catch (e) {
     try {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")  // For Microsoft IE 6.0+
     }
     catch (e2) {
       xmlHttp = false   // No Browser accepts the XMLHTTP Object then false
     }
   }
   if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
     xmlHttp = new XMLHttpRequest();        //For Mozilla, Opera Browsers
   }
   return xmlHttp;  // Mandatory Statement returning the ajax object created
}
 
var xmlhttp = new getXMLObject();    //xmlhttp holds the ajax object
 
function ajaxFunction(_Parameters) {
//  var str = new String();  //Used to prevent caching during ajax call
  if(xmlhttp) {  
 
//    xmlhttp.open("GET","Mailer?zzzz=" + encodeURIComponent("String - Стринг - &#21033;&#29992;&#26032;&#30340;"),true); //gettime will be the servlet name
    xmlhttp.open("POST","../../Mailer",true); //gettime will be the servlet name
 
    xmlhttp.onreadystatechange  = handleServerResponse;
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; accept-charset="UTF-8"');
    xmlhttp.send(_Parameters);
  }
}
 
function handleServerResponse() {
   if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
       //alert(xmlhttp.responseText); //Return String
       _alert("Message",xmlhttp.responseText,"OK","#f5e8ce","#11ED32","#3498db","#CCCCCC");
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}
 

 
Добавлено:
ajax код  
 
Добавлено:

Цитата:
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; accept-charset="UTF-8"');  

может вот тут что изменить нужно ?

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 17:41 13-03-2016
bordellinoff

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
@vs6262  
 
попробовал ещё несколько раз -- передача и получение, кириллица и entities -- всё прекрасно работает :-(
 
Единственное место, по моему мнению, где могут быть ошибки -- _Parameters в функции ajaxFunction. Параметры могут оказаться некодированными, например:
 
var1=data:image==
 
var1=a&&&==
 
Неплохо бы проверить, что именно получается и отправляется на и с сервера.
Все функции, хотя и не оптимированы, но полностью рабочии.

Всего записей: 50 | Зарегистр. 13-10-2013 | Отправлено: 19:50 13-03-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я _Parameters пропускаю каждый параметр через encodeURIComponent()
 
Добавлено:

Цитата:
encodeURIComponent()

может как то по другому кодировать-декодировать ?

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 20:34 13-03-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AJAX
Подробнее...
 
Send.php
Подробнее...
 

Код:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA  
  AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO  
  9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />  

 
теперь поменял бэкгроунд на PHP(в JavaEE и эта точка не проходила) красная точка проходит, а вот картинки ~ 6KB не проходят
 
http://www.br-andy.de/ggg/
 
может кто знает в чем причина ?

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 18:17 21-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
может кто знает в чем причина ?

причина чего? не вижу проблемы

Всего записей: 15114 | Зарегистр. 20-09-2014 | Отправлено: 19:21 21-04-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
причина чего? не вижу проблемы

не проходят картинки более 1-2КБ на мыло(в WYSIWYG Editor то они вставляются)

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 20:10 21-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
не проходят картинки более 1-2КБ на мыло

потому что скрипт обрезает строку где попало.
в base64 кодирует правильно, но обрезает, вставляет пробелы - это нарушает целостность и не позволяет декодировать обратно
 
   
переносить на новую строку можно, но пробелов быть вообще не должно

Всего записей: 15114 | Зарегистр. 20-09-2014 | Отправлено: 20:20 21-04-2016 | Исправлено: Mavrikii, 20:22 21-04-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо, буду дебагерить
 
Добавлено:
похоже через AJAX не проходит, использую POST

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 20:45 21-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
похоже через AJAX не проходит, использую POST

не в ajax дело, а в том, что делает ваш скрипт перед отправкой на сервер. судя по логам в браузере данные отправляются уже разбитые
   
видны пробелы (или переносы строк, возможно).
 
вот как изначально выглядит в коде редактора (правильно)
   
пробелов нет, переносы строки показаны через /, что правильно
 
в общем у вас + заменяются на пробелы - не должно такого быть

Всего записей: 15114 | Зарегистр. 20-09-2014 | Отправлено: 21:55 21-04-2016 | Исправлено: Mavrikii, 22:00 21-04-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
что делает ваш скрипт перед отправкой на сервер

encodeURIComponent()

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 22:35 21-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
encodeURIComponent()

да мне как то.. сами понимаете.
в чем проблема - я указал.. решение за вами.
ps: да и очевидно, что оно не удаляет плюсы - https://jsfiddle.net/b3p96w2c/

Всего записей: 15114 | Зарегистр. 20-09-2014 | Отправлено: 22:43 21-04-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может в PHP  
 
 

Код:
function decodeURIComponent($str) { $str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str)); return html_entity_decode($str,null,'UTF-8');; }

 
не эквивалентно JS
 
 
Добавлено:
c tinyMCE код на выходе чистый, я проверял

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 22:49 21-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
может в PHP  

я же показал, что еще до php, на момент отправки из браузера, плюсы уже заменены.
 

Цитата:
function decodeURIComponent($str)

зачем?? http://php.net/manual/en/function.urldecode.php
более того, насколько я знаю - полученные данные в php уже автоматически декодированы.
и еще более того - jquery сам все обрабатывает (смотря, конечно, как сериализовать данные)
http://api.jquery.com/jquery.ajax/
 
то есть  

Код:
$.ajax({
    type : "GET",
    url  : "url.php",
    data : {
        field1 : '111',
        field2 : '222'
    }
});

автоматом обрабатывает данные, насколько я помню

Всего записей: 15114 | Зарегистр. 20-09-2014 | Отправлено: 22:53 21-04-2016 | Исправлено: Mavrikii, 22:57 21-04-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
конфигурация tinyMCE  
 

Код:
    <script>
tinymce.init({
  selector: "#m_s_g",
  width : 838,
  height: 260,
  resize: false,
  plugins: [
      "advlist autolink lists link image charmap print preview anchor",
      "searchreplace visualblocks code fullscreen",
      "insertdatetime media table contextmenu paste",
      "textcolor legacyoutput image imagetools"
  ],
  imagetools_toolbar: "rotateleft rotateright | flipv fliph | editimage imageoptions",
  toolbar: "undo redo | bold italic | fontselect fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | link image",
  paste_data_images: true,
    images_upload_handler: function (blobInfo, success, failure) {
      // no upload, just return the blobInfo.blob() as base64 data
      success("data:" + blobInfo.blob().type + ";base64," + blobInfo.base64());
    },
  convert_urls: false,
  content_css: 'fonts.css',
  theme_advanced_font_sizes : "8px,10px,12px,14px,16px,18px,20px,24px,32px,36px",
  theme_advanced_fonts : "Andale Mono=andale mono,times;"+
                         "Arial=arial,helvetica,sans-serif;"+
                         "Arial Black=arial black,avant garde;"+
                         "Book Antiqua=book antiqua,palatino;"+
                         "Comic Sans MS=comic sans ms,sans-serif;"+
                         "Courier New=courier new,courier;"+
                         "Century Gothic=century_gothic;"+
                         "Georgia=georgia,palatino;"+
                         "Gill Sans MT=gill_sans_mt;"+
                         "Gill Sans MT Bold=gill_sans_mt_bold;"+
                         "Gill Sans MT BoldItalic=gill_sans_mt_bold_italic;"+
                         "Gill Sans MT Italic=gill_sans_mt_italic;"+
                         "Helvetica=helvetica;"+
                         "Impact=impact,chicago;"+
                         "Iskola Pota=iskoola_pota;"+
                         "Iskola Pota Bold=iskoola_pota_bold;"+
                         "Symbol=symbol;"+
                         "Tahoma=tahoma,arial,helvetica,sans-serif;"+
                         "Terminal=terminal,monaco;"+
                         "Times New Roman=times new roman,times;"+
                         "Trebuchet MS=trebuchet ms,geneva;"+
                         "Verdana=verdana,geneva;"+
                         "Webdings=webdings;"+
                         "Wingdings=wingdings,zapf dingbats",
 file_picker_callback: function (callback, value, meta)
        {
            $('#html-editor input').click();
            //how to get selected image data and add to editor?
                $('#Iimage').change(function() {
                  var file = this.files[0];
                  var reader = new FileReader();
                  reader.onload = function(e) {
                    callback(e.target.result, {
                      alt: ''
                    });
                  };
                  reader.readAsDataURL(file);
                }).change();
                
        }
 
});
    </script>

 
Добавлено:
получилось
 
http://www.br-andy.de/ggg/

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 23:04 21-04-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
получилось  

ну так напишите для остальных в чем дело

Всего записей: 15114 | Зарегистр. 20-09-2014 | Отправлено: 23:57 21-04-2016
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в PHP у Message убрал decodeURIComponent()

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 00:53 22-04-2016 | Исправлено: vs6262, 01:02 22-04-2016
nuker96

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
https://learn.javascript.ru/ajax-jsonp

Всего записей: 27 | Зарегистр. 22-08-2011 | Отправлено: 22:40 26-04-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » HTML код не проходит через AJAX POST


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru