jquery ajax_jQuery ajax传递特殊字符串例子

更新时间:2019-06-26    来源:jquery    手机版     字体:

【www.bbyears.com--jquery】

当你用ajax传递值到服务器端,如果值中包含特殊字符串如+,&等,在服务器端获取的结果可能就会出现差异,因为这些字符有其它用途,如“+”表示连接符,在转义后你获取到的就是空格。

可以看看这些特殊字符与十六进制的关系:

+ 空格 / ? % & = # %2B %20 %2F %3F %25 %26 &3D %23

如果变量中确实需要包含这些特殊字符,请用encodeURIComponent()函数过滤,它会对这些字符编码,服务器端是会被自动解码的,不需要处理。

另外,尽量提交json格式数据 如 {a:"aaa", b:"bbb"}  而非 "a=aaa&b=bbb"

例子

 代码如下

<script type="text/javascript">
   //alert("你好");
   function good(){
       //alert("您好 Ajax");
   var myurl = document.getElementById("txtUrl").value;
   var mydata = {"URL" : myurl};
   alert(myurl);
   var jsonData = {"ClientName":"爱&国","URL":"http://192.168.1.8:9080/GeoSearch?Request=geo&level=geometry&ClientName=美国"};
 
   $.ajax({
   type: "POST",
   //ContentType: "text/xml;utf-8",//这里需要加个utf-8
   //dataType:"xml",
   url: "Tserver",
   //dataType:"xml",
   data:mydata,
   //data:jsonData,
   //data:{"ClientName":"爱&国","URL":"http://192.168.1.8:9080/GeoSearch?Request=geo&level=geometry&ClientName=美国"},
   //data: "ClientName=J/&o#爱国美丽&##hn@@@@人&location=Boston",
   success: function(data, textStatus){
     document.getElementById("g").value=data;
     //alert(data);
     alert(jsonData);
   },
   error:function (XMLHttpRequest, textStatus, errorThrown) {
    // 通常 textStatus 和 errorThrown 之中
    // 只有一个会包含信息
    //this; // 调用本次AJAX请求时传递的options参数
   // alert("bad");
    alert(textStatus);
    //alert(errorThrown);
}
  
});
   }
</script>


      
          资源地址 :

          资源名字 :
      
      
      

      
      
      
      

服务器端:

 代码如下

package test;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

public class Tserver extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;

 public Tserver() {
  super();
 }    
 

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  this.doPost(request, response);
 }   
 

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   response.setContentType("text/html");
   //response.setContentType("text/xml");
   //response.setContentType("application/xml");
   response.setCharacterEncoding("UTF-8");
   request.setCharacterEncoding("UTF-8");
   //request.setCharacterEncoding("UTF-8");
      //String ServerName = request.getParameter("ClientName");
   String ServerName = request.getParameter("URL");
      System.out.println(ServerName);
      String responseText1 = "your name is:   "+ServerName+ "   for ever from server";
      PrintWriter out = response.getWriter();
      out.println("");
      out.println(responseText1);
      out.println("
");
      out.close();
 }          
}

本文来源:http://www.bbyears.com/wangyezhizuo/55304.html

热门标签

更多>>

本类排行