2011-02-14 2 views
1

저는 YUI에 인터페이스를 개발했습니다. 제출 클릭시 파일을 업로드 할 양식이 있습니다.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는 업로드 된 파일을 처리하고 같은 일부 자바 스크립트 코드를 반환 값 : 'HTML'변수가 <pre></pre> 태그로 둘러싸인 자바 스크립트 코드를 포함,라고

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

그러나 때 "업로드" . 그 이유는 eval() 함수가 거기에서 작동하지 않는 이유입니다.

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); 

그러나 didnt 한 일을 :

내가 사용하는 PHP 파일에 설정 헤더를 시도했다.

Google에서 검색했지만 많은 사람들이 동일한 문제에 직면 해 있습니다. 그게 내가 잘못 이해가 왜 알아낼 수 없어요. 작동하게하려면 어떻게해야합니까? 동일한 흐름을 구현하는 병렬 방법이 있습니까?

미리 감사드립니다 .. !! 당신의 JSON 인코딩에서

답변

1

-

replace < with &lt; 

또한

replace & with &amp; 

: P

+0

문제가 해결되지 않습니다. – Vin

0

유이의 파일 업로드는 iframe을 통해 발생합니다. responseText는 해당 iframe의 본문이므로 <pre> 태그가있는 곳입니다.

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

태그는 모든 속성뿐만 아니라 <pre> 태그도 제거해야합니다. 그런 다음 responseNoPreTags를 평가할 수 있어야합니다.