ajax 요청 url 이 너무 긴 문제 에 부 딪 혔 습 니 다!

1706 단어 AjaxIEGooglefirefox
초대형 텍스트 상자 textarea 에는 대량의 데이터 가 있 습 니 다. ajax 는 URL 을 통 해 service 에 결 과 를 되 돌려 달라 고 요청 합 니 다. URL 에는 여러 가지 인자 가 포함 되 어 있 습 니 다. 물론 이전 초대형 텍스트 상자 의 내용 도 포함 되 어 있 습 니 다.
이전에 개발 할 때 Firefox 로 디 버 깅 을 했 는데 4000 길이 의 문자열 이 textarea 에서 URL 을 통 해 요청 하 는 것 은 문제 가 없 었 습 니 다.
테스트 에 제출 할 때 문제 가 발생 했 습 니 다. 테스트 인원 이 IE 아래 에서 문 제 를 발 견 했 습 니 다. textarea 에서 문자 길이 가 2000 (대략 데이터) 을 넘 으 면 JS 오류 가 발생 했 습 니 다. ajax 는 프론트 데스크 에 값 을 되 돌려 주지 않 았 습 니 다.
원래 코드 보기:
function getJsonData(url) 
{ 
  var ajax = Common.createXMLHttpRequest(); 
  ajax.open("GET",url,false); 
  ajax.send(null); 
  try 
  { 
   eval("var s = "+ajax.responseText); 
   return s; 
  } 
  catch(e) 
  { 
   return null; 
  } 
} 
function getData(){ 
var url="BlacklistService.do?datas="+datasvalue; 
var result = getJsonData(url); 
} 

인터넷 구 글 에서 해결 방법 발견:
사용 한 XML Http 의 요청 을 POST 로 수정 하고 인자 와 URL 을 분리 해서 제출 합 니 다.
수정 후 코드 는 다음 과 같 습 니 다.
function getJsonData(url,para) 
{ 
  var ajax = Common.createXMLHttpRequest(); 
  ajax.open("POST",url,false); 
  ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
  ajax.send(para); 
  try 
  { 
   eval("var s = "+ajax.responseText); 
   return s; 
  } 
  catch(e) 
  { 
   return null; 
  } 
} 
function getData(){ 
var url="BlacklistService.do"; 
var para="datas="+datasvalue; 
var result = getJsonData(url,para);
}

좋은 웹페이지 즐겨찾기