YUI: Проблема в файле Загрузка и обработка скрипта ..! - PullRequest
1 голос
/ 14 февраля 2011

Я разработал интерфейс в YUI.В которой есть форма для загрузки файла при нажатии на кнопку Отправить.

YAHOO.util.Connect.setForm(document.getElementById('settings_Form'),true); 
YAHOO.util.Connect.initHeader('Content-type','text/javascript');
callbackFn =  {
 upload: function(html) {
  eval(html.responseText);
 }
};
YAHOO.util.Connect.asyncRequest('POST', 'pgRequests.php?t=settings', callbackFn);

pgRequests.php обрабатывает загруженный файл и возвращает несколько кодов JavaScript, таких как:

var servResponse = {"global_onOff":0,"off_msg":"OFF","id":0,"service":"Change Settings"};

Но когда вызывается «upload», переменная «html» содержит код JavaScriptс тегами .вот почему функция eval () там не работает.

Я пытался установить заголовок в PHP-файле, используя:

header("Content-type: text/javascript; charset: UTF-8");
header("Cache-Control: must-revalidate");
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() - 1) . " GMT";
header($ExpStr);

, но не работал.

Я искал в Google,но многие люди сталкиваются с той же проблемой.Вот почему я не могу понять, где это не так.Что я должен сделать, чтобы это работало?Есть ли параллельный способ реализовать тот же поток?

Заранее спасибо .. !!

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

В вашем кодировке JSON -

replace < with &lt;

, а также

replace & with &amp; 

: р

0 голосов
/ 06 мая 2011

Загрузка файла YUI происходит через iframe.ResponseText - это тело этого iframe, следовательно, откуда берутся теги <pre>.

       var responseNoPreTags = htmle.responseText.replace( /<\s*pre.*?>/g, '').replace ( /<\s*\/\s*pre\s*.*?>/g, '');

Это должно удалить теги <pre> так же, как любые атрибуты.После этого вы сможете оценить responseNoPreTags.

...