>  기사  >  웹 프론트엔드  >  특수 문자가 포함된 Ajax 전송 매개변수에 대한 빠른 솔루션

특수 문자가 포함된 Ajax 전송 매개변수에 대한 빠른 솔루션

亚连
亚连원래의
2018-05-24 10:29:251729검색

이제 특수문자가 포함된 Ajax 전송 매개변수 문제에 대한 빠른 해결책을 알려드리겠습니다. 그것이 모두에게 도움이 되기를 바랍니다.

JQuery AJAX에서는 이러한 문제가 발생합니다. 매개 변수에 &'#@ 등의 특수 문자가 포함되어 있습니다. 이때 전달된 매개 변수가 변경되었기 때문에 AJAX를 실행하면 문제가 발생합니다. :

Option 1:

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: 'option=delete&name=11&adb, success: function (data) { if (data != 'error ') { } } }); '

위에서 실행한 ajax는 ajax.ashx 페이지를 요청하면 11&abd라는 이름의 데이터를 비동기적으로 삭제하는 것입니다. 작업을 실행한 후 얻은 이름 매개변수는 11입니다. , 우리는 그것이 실제로 삭제되었음을 알 수 있습니다. 이는 이전 두 매개변수를 세 개의 매개변수인 name, abc로 바꾸는 & 특수 문자 때문입니다. :

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: {
    'option': 'delete',
    'name': '11&adb'
  },
  success: function(data) {
    if (data != 'error') {}
  }
});

위의 json 형식을 사용하여 매개변수를 전달하면 특수 문자로 인한 매개변수 오류를 방지할 수 있습니다.

옵션 2: 균일 인코딩 UTF-8.

1.JSP 페이지 :

beb6883cd1fd7389c5082962d18927f9

2.Ajax.js 페이지: 매개변수를 전달할 때 특수 문자가 포함된 매개변수는 escape(encodeURIComponent()를 사용하여 트랜스코딩될 수 있습니다. ) 기능을 수행하고 Backstage로 전달되었습니다!

var url = "/ZX/servlet/AddMemoServlet memo=" + memoCode + "&otherMemo=" + escape(encodeURIComponent(otherMemo)) + "&applNo=" + applNo.innerText.substr(0, 16); //alert("url="+url); 
xmlHttp.open("POST", url, true); 
xmlHttp.onreadystatechange = doMemo; 
xmlHttp.send(null);

3. 서버는 전달된 데이터를 받습니다. 예: 서블릿의 doGet 메소드에서: request.setCharacterEncoding("gb2312"); 8") ; response.setHeader("Cache-Control", "no-cache"); ... //다음은 Ajax에서 url로 전달된 매개변수 값에 특수 문자가 포함되어 있고 백엔드 파싱이 발생하는 문제를 해결합니다. 오류 발생: utf- 8 방식으로 java.net.URLDecoder 디코드를 사용하십시오. urlDecoder=new java.net.URLDecoder(); String otherMemo = urlDecoder.decode(request.getParameter("otherMemo"),"utf-8"); logger.info("otherMemo: " + otherMemo);

위 내용은 제가 모두를 위해 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

Ajax 요청용 FormData를 사용하여 Ajax를 통해 파일 업로드

ajax를 사용하여 비동기 새로 고침 요청 구현

jQuery Ajax 파일 업로드 방법

위 내용은 특수 문자가 포함된 Ajax 전송 매개변수에 대한 빠른 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.