>  기사  >  웹 프론트엔드  >  jQuery가 AJAX_jquery를 호출할 때 Get 및 post에 대한 일반적인 잘못된 코드 솔루션에 대한 설명 예

jQuery가 AJAX_jquery를 호출할 때 Get 및 post에 대한 일반적인 잘못된 코드 솔루션에 대한 설명 예

WBOY
WBOY원래의
2016-05-16 17:32:521105검색

이전에 Sina Blogjs가 AJAX를 호출할 때 Get 및 post의 잘못된 코드에 대한 솔루션에 글을 썼지만, js 코드를 사용하는 것이 더 번거롭기 때문에 데이터 상호작용에 ajax를 사용할 때 성숙한 프레임워크를 사용할 수 있습니다. js---jQuery의 .

웹사이트를 디자인할 때 등록, 로그인, 페이징 검색 등 필수 페이지 데이터를 얻으려면 매개변수를 서버에 제출해야 합니다. 페이지 새로 고침으로 인해 발생하는 사용자의 고통을 줄이기 위해 ajax가 탄생했습니다. 그러나 초보자가 프로젝트를 개발할 때 매우 짜증나는 문제에 직면하게 됩니다: 중국어 문자가 깨집니다.

아래에서는 문자 왜곡이 발생할 수 있는 위치와 이를 해결하는 방법을 간단한 예를 통해 설명하겠습니다.
우리의 예는 주로 사용자가 등록할 때 사용자 이름이 올바른지(이미 존재하는지) 구현합니다. 포커스가 사용자 이름 텍스트에서 멀어지면 사용자 이름이 비동기적으로 제출되고 서블릿이 결과를 추출하고 판단하여 결과를 반환합니다. 해당 프롬프트를 만드는 페이지입니다.

첫 번째 단계는 새 웹 프로젝트(기본 GBK 형식)를 만들고 이름을 jQuery_Ajax로 지정하는 것입니다. WebRoot 디렉터리에 새 js 파일 패키지를 만들고 그 안에 jquery-1.4.4.js를 배치합니다.

두 번째 단계는 src 아래에 서블릿 패키지를 만들고 Vali.java를 작성하는 것입니다.

코드를 복사하세요 코드는 다음과 같습니다.

package servlet;
import java.io.IOException;
import java.net.URLDecoder; import javax.servlet .ServletException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse
공용 클래스 Vali는 HttpServlet을 확장합니다.
@ Override
protectedvoid service(HttpServletRequest 요청, HttpServletResponse 응답)
throwsServletException, IOException {
StringuserName = URLDecoder.decode(request.getParameter("userName"),"utf-8")
System.out.println(userName);
response.setContentType("text/html;charset=utf-8")
PrintWriter pw =response.getWriter(); equals("张三")){
pw.println("Error");
}else{
pw.println("올바른")
}
}
}


코드에서 알 수 있듯이 인코딩 형식을 포함하는 명령문은 문자 깨짐을 해결하는 방법 중 하나입니다.

코드 참고 사항:

1.URLDecoder.decode(request.getParameter("userName"),"utf-8") - 페이지의 데이터 형식을 변환하고 추출합니다.
2.response.setContentType("text/html;charset=utf-8") - 응답 반환 값을 utf-8로 인코딩하고 페이지로 돌아갑니다3. 2의 변환에 특히 주의하세요. 이 메소드의 모든 응답 전에 작성해야 합니다. 그렇지 않으면 실패할 수 있습니다4. 이 서블릿에 의한 데이터 인코딩 형식은 제출 메소드가 GET인 경우 페이지를 추출하는 코드에만 적합합니다. 데이터는 다음과 같습니다.




코드 복사
코드는 다음과 같습니다. request.setCharacterEncoding( "utf-8"); StringuserName = request.getParameter(" userName");
userName= new String(userName.getBytes("iso-8859-1"),"utf-8")


세 번째 단계는 간단한 등록 페이지 ajax .jsp를 작성하는 것입니다.



코드 복사
코드는 다음과 같습니다. 다음과 같습니다:

<%@ 페이지 언어="java"import="java.util.*" pageEncoding="utf-8"%>
<%
문자열 경로 = request.getContextPath();
String basePath =request.getScheme() "://" request.getServerName() ":" request.getServerPort() 경로 "/";
%>


<머리>

내 JSP 'ajax.jsp' 시작 페이지








function vali(){
$.ajax({
type:"POST",
url:"/jQuery_Ajax/Vali",
data:encodeURI(encodeURI("userName=" $(":text").val())),
success:function(data){
$("span").text(data)
}
});
}


<본문>
용도명:

密码:



代码中注의미:
1.页面要设置为utf-8,且引入jquery-1.4.4.js
2.ajax통로POST 방법은 다음과 같습니다. 🎜>

复主代码
url: "/jQuery_Ajax/Vali",
data:encodeURI("userName=" $(":text").val()),
success:function(data){
$("span") .text(데이터)
}
});
}


最后一步,web.xml配置servlet和映射



复system代码
代码如下: <서블릿> 제 J2EE 구성 요소에 대한 설명입니다 이것은 내 J2EE 구성 요소의 표시 이름입니다
Vali
servlet.Vali

<서블릿 매핑>
Vali
/Vali



经过以上代码的编写,本注册验证的项目已完成,将其部署至tomcat并过网页访问。


最后总结大神的jQuery는 题解决를 제공합니다. 방법

1. 检查页면编码,将页면编码设置为utf8,如下:

2. 检查servlet에서는 doPost或doGet방법중간添加如下代码: response.setContentType("text/xml;charset=utf-8"); 3. 修改tomcat文件,TOMCAT_HOME/conf/server.xml文件中增加URIEncoding=”utf8”:

4. 在工程中新增过滤器,将编码方式设置为utf8
经过以上 4步操작작后,问题依旧。
5. 检查ie의 http 헤더,查看contentType字段,如下:
contentType:"application/x-www-form-urlencoded"
6.检查firefox의 http 헤더,查看contentType字段,如下:
contentType: "application/x-www-form-urlencoded;charset=UTF-8"
对比5,6两步,问题出现。
7.修改jQuery-1.x.x.js文件,将
contentType: "application/x-www-form-urlencoded"는 아래쪽 인터페이스
contentType:"application/x-www-form-urlencoded;charset=UTF-8"
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.