2010-03-22 4 views
2

Я использую код, который подходит, но когда я использую приведенный ниже код, чтобы отправить html-фрагмент на страницу обработки, чтобы сохранить его в виде файла, но я ничего не получаю.

Я попытался использовать ajax с параметром processData для ложных объявлений dataTypes html, text и xml, но ничего не работает. Я ничего не могу найти по этому поводу, поэтому, наверное, мне нужно пропустить что-то довольно тривиальное, но я был на нем уже 3 часа.

This works 
$.post("SaveFile.aspx", {f: "test4.htm", c: "This is a test"}, 
    function(data){ 
     alert(data); 
    }, "text"); 

This fails 
$.post("SaveFile.aspx", {f: "test4.htm", c: "<h1>This is a test</h1>"}, 
    function(data){ 
     alert(data); 
    }, "text"); 
+0

Что такое «сбой»? – zerkms

+0

Старайтесь быть более ясными. Что вы имеете в виду с неудачей? Произошла ошибка в консоли ошибок браузеров, вызвана ли обратная связь или нет. Вы видите вызов ajax в серверных журналах. Или попробуйте, как предложил Sky Sanders 'c: encodeURIComponent («

Это тест

»)' – jitter

+0

Вы используете Firefox? Установите Firebug, и вы сможете точно увидеть, что было отправлено и что было возвращено. – Christian

ответ

3

Попробуйте uriEncoding значение первой, как это ...

Он может получить XML-файл в конечной точке, как предполагалось.

var value = encodeURIComponent("<h1>This is a test</h1>"); 
$.post("SaveFile.aspx", {f: "test4.htm", c:value }, 
    function(data){ 
     alert(data); 
    }, "text"); 
0

Если на сервере есть ошибка, функция успеха .post не будет вызвана. Попробуйте использовать .ajax и выполните успешную работу и функцию ошибки.

+0

Я сомневаюсь, что на сервере есть ошибка, потому что он в основном передает один и тот же ввод в одно и то же место каждый раз, за ​​исключением того, что у него есть разметка во втором. –

+0

Хотя я и сомневаюсь в этом, его единственная разница между двумя фрагментами – Yisroel

0

Он считает, что вы ошибаетесь из ValidateRequest в asp.net. Вы не можете отправить простой html на страницу asp.net без htmlEncoding вашего html или отключить параметр ValidateResquest в директиве @page на странице aspx или в файле web.config, если вы хотите сделать это для всех своих страниц.

Хотите узнать больше о asp.net? Посетите http://www.developerit.com

+0

NB: Отключение validateRequest может быть утечкой безопасности. Поэтому вам лучше использовать htmlEnconding и использовать белый список для проверки того, что никто не отправляет теги скриптов, так как это может быть потенциальная атака xss. –

Смежные вопросы