2012-02-28 3 views
1

У меня очень странная проблема.JQuery .post() html code

У меня есть форма с полем ввода, где пользователь может скопировать вставку кода Vimeo. Форма затем отправляется через ajax.

Проблема в том, что когда я пишу что-то еще, чем код вставки в форме ввода, он отлично работает. Когда я вставляю код ввода, он возвращает ошибку «Страница не найдена». Я сузил его до двух символов. Когда я набираю "> <", я получаю сообщение об ошибке. Если я набираю «<>», скрипт проходит.

Форма HTML в порядке, поэтому я просто отправлю код javascript. (Я использую JQuery)

  //submit the video form 
      function submitVideoForm() { 
      var $inputs = $j('#form-add-video :input'); 
      var values = {}; 
      //loop through all the inputs and add them in an object 
      $j($inputs).each(function() { 
       values[this.name] = $j(this).val(); 
      }); 

      $j.post("http://www.mysite.com/admin/plugin/media/add_video/", values, 
       function(data){ 
        if (data != 'false') { 
         console.log('Worked'); 
        } 
        else { 
         console.log('Failed'); 
        }; 
      }, 'json'); 

      } 

Когда я смотрю на то, что писал с поджигатель, я могу видеть, что данные спасся

media%5Barticleid%5D=355&media%5Bembed_code%5D=%3Ciframe+src%3D%22http%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F21350265%3Ftitle%3D0%26amp%3Bbyline%3D0%26amp%3Bportrait%3D0%22+width%3D%22398%22+height%3D%22224%22+frameborder%3D%220%22%3E%3C%2Fiframe%3E 

Я попытался с помощью побега(), та же проблема.

Любая помощь будет оценена по достоинству.

+0

Где вы видите эту ошибку «Страница не найдена»? Когда вы пытаетесь отправить форму? Можете ли вы предоставить нам URL-адрес, который он не может найти (удаление вашего личного сайта) –

+0

Вот скриншот об ошибке: http://i.imgur.com/1Aw3C.jpg. Вот скриншот одного и того же скрипта, но различного значения на вкладке: http://i.imgur.com/NEAwY.jpg. Просто, чтобы вы знали, я попытался найти решения ниже (encodeURIComponent, escape и т. Д.). Строка кодируется, но я все еще получаю ошибку. –

+0

Возможно ли, что сервер видит в нем угрозу безопасности и блокирует его, когда видит% 3E% 3C (просто мысль) – ajon

ответ

0

HTML-теги могут испортить ваш код. Замените его эквивалентом сущности HTML. Snippet

+0

Хотя он делает то, что он говорит, это не исправляет мою проблему. –

0

Просьба serializing Ваши данные, так как вы используете jQuery.

Замените $inputs и values на var values = $j('#form-add-video').serialize(); и удалите функцию, проходящую через входы. .serialize возьмет все за вас.

ИЛИ, вы можете попробовать encodeURIComponent

Ex: values[this.name] = encodeURIComponent($j(this).val());

См this thread для дальнейшего обсуждения вопроса о побеге против encodeURI() против encodeURIComponent.

+0

Привет, Джон, я попробовал, и это не помогло. Он правильно закодировал строку, но все еще получил ошибку «страница не найдена». –

+0

Отредактировал мой ответ, чтобы попробовать .serialize() –

+0

К сожалению, я не могу использовать сериализацию, потому что это не форма. Причина в том, что это плагин для CMS, и он уже завернут внутри

. Мне просто нужно разместить небольшую часть. –