`
wxq594808632
  • 浏览: 260533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ajax兼容IE,FF问题

    博客分类:
  • ajax
阅读更多

如题,废话不多说。

JSP页面

hello.jsp

 

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>AJAX提交页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<script type="text/javascript" src="ajax.js"></script>
   <script type="text/javascript">
   function doso(){
     var url = "actAction.do";
     var s="武晓强斯蒂芬34-*(&_(*!$^_*!&#!^$+!*#&&";
     s=encodeURIComponent(s);      //转换特殊字符
     var parameter ="name="+s+"&email=abc@abc.com&www=http://wxq594808632.blog.163.com/";
     var method = "POST";
     function callBack(text){           //回调函数
      alert("调用成功!\n名字为:"+text);
     }
   new Ajax().ajaxRequest(url,parameter,method,callBack);     //调用方法发送Request
   }
   </script>
</head>
<body>
<input type="button" value="提交" onclick="doso()"/>
   </body>
</html>


 

 

 

java类

ActAction.java

 

package ajaxpost;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import java.io.UnsupportedEncodingException;
import java.io.IOException;
import java.io.PrintWriter;

public class ActAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) throws
            UnsupportedEncodingException {
        //设置字符编码返回的编码
        response.setContentType("text/html;charset=UTF-8");
        //接收字符的编码
        try {
            request.setCharacterEncoding("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        PrintWriter out = null;
        try {
            out = response.getWriter();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        String name = request.getParameter("name");
        String email = request.getParameter("email");
        String www = request.getParameter("www");
        System.out.println(email);
        System.out.println(name);
        System.out.println(www);
     //   out.print(name+"\n"+email+"\n"+www);
        out.print(name);         //返回值
        return null;
    }
}


 

 

 

 

最重要滴

ajax.js

我用别人的。感谢这位大哥。。

/*
author zhangshuling
email  zhangshuling1214@126.com
*/
function  Ajax(){
    var _xmlHttp = null;
 this.createXMLHttpRequest = function(){
  try{
   if (window.ActiveXObject) {                                                     
    _xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");                                      
   }                                                                               
   else if (window.XMLHttpRequest) {                                                   
    _xmlHttp = new XMLHttpRequest();                                                
   }
  }catch(e){
     alert(e.name +" : " + e.message);
  }
 }
 
 this.backFunction = function(_backFunction){
  if(_xmlHttp.readyState == 4) {
   if(_xmlHttp.status == 200) {
    _backFunction(_xmlHttp.responseText);//这里可以设置返回类型
   }
  }
   _xmlHttp.onreadystatechange = null;
 }

 this.doPost = function(_url,_parameter,_backFunction){
     try{
      _xmlHttp.open("POST",_url, false); 
   _xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   _xmlHttp.send(_parameter); 
   }catch(e){
    alert(e.name +" : " + e.message);
     }
 }
 
 this.doGet = function(_url,_parameter,_backFunction){
    try{
        var _random = Math.round(Math.random()*10000);
        _xmlHttp.open("GET", (_url+"?random=" +_random +"&" + _parameter), false); 
     _xmlHttp.send(null); 
   }catch(e){
      alert(e.name +" : " + e.message);
   }
 }
 
    this.ajaxRequest = function(_url,_parameter,_method,_backFunction){
          try{
            this.createXMLHttpRequest();
         if(_method.toLowerCase() == "post"){
            this.doPost(_url,_parameter,_backFunction);
         }else{
            this.doGet(_url,_parameter,_backFunction);  
         }
         try{
           _xmlHttp.onreadystatechange = this.backFunction(_backFunction);
         }catch(err){
            //??????IE?????????????????
         }
      }catch(e){
      alert(e.name +" : " + e.message);
   }
     }

} 

/*
 var url = "ajax.do";
 var parameter = "parameter=parameter";
 var method = "post" 
 
 function callBack(text){
  ....
 }
 
 new Ajax().ajaxRequest(url,parameter,method,callBack);

*/


 

经过本人FF,IE6,IE7,测试。完全好用

 

分享到:
评论
4 楼 wxq594808632 2011-05-11  
haohao-xuexi02 写道
我问下,你现在还在维护这个程序吗?ie8是有问题?

两年多了。现在都用jquery了。我之后就没有做web方向了
3 楼 haohao-xuexi02 2011-05-10  
我问下,你现在还在维护这个程序吗?ie8是有问题?
2 楼 wxq594808632 2009-05-10  
wh8766 写道

话说..博主能再排版下么 代码这直接贴的 啥都看不到了



我导入rss的时候就是这样。。吓人。。管理员也没解决
1 楼 wh8766 2009-05-03  
话说..博主能再排版下么 代码这直接贴的 啥都看不到了

相关推荐

    ajax简易模型 兼容多个浏览器(ff ie ...) get post请求

    ajax简易模型 兼容多个浏览器(ff ie ...) get post请求

    [php]ifame仿ajax图片上传预览,兼容IE\FF\Chrome

    个人做的一个上传图片的一个iframe 将本文件夹内容上传到服务器中,运行demo/index.html即可。 本源码属于个人开发开放式源码,可随意传播。 支持IE/FF/Chrome浏览器

    一个图片居中的CSS示例,兼容IE6,7,8和FF,opera,safari

    一个图片居中的CSS示例,兼容IE6,7,8和FF,opera,safari

    Autocomplete(自动完成 下拉提示框Ajax+ASP.NET+Jquery)(IE、FF兼容)

    模仿百度下拉提示框, 自动完成 下拉提示框Ajax+ASP.NET+Jquery)(IE、FF兼容

    图片预览(兼容FF,IE7)

    兼容FF,IE7的图片预览 可直接在本地环境下解压使用 使用AJAX技术 将图片提交至临时文件夹并预览

    ajax模仿google提示输入框(兼容ff)

    2.兼容IE6,IE7,FF 3.支持input显示与value分离【以隐藏域方式提交数据】 4.支持下拉框按钮 5.支持显示结果数量 6.可以一个页面多次使用 7.模拟下拉框不会被select遮挡 8.调用更方便(内核已改为jq插件) 9.皮肤修改...

    模仿google下拉提示框输入框 Ajax 兼容火狐

    2.兼容IE6,IE7,FF 3.支持input显示与value分离【以隐藏域方式提交数据】 4.支持下拉框按钮 5.支持显示结果数量 6.可以一个页面多次使用 7.模拟下拉框不会被select遮挡 8.调用更方便(内核已改为jq插件) 9.皮肤修改...

    Ajax操作做订单

    Ajax操作做订单,即时查询,表格操作(如可以修改表格内容)、导出到Excel等功能。兼容:FF,IE

    仿百度留言(Ajax+Php+MySQL)

    1.使用Ajax+Php+MySQL实现 2.与百度右下角留言完全一样 3.完全兼容IE FF

    黄褪效果演示(内附实现黄褪提示的js类库,简单易用,兼容FF、IE)

    黄褪效果演示(内附实现黄褪提示的js完整代码,简单易用,兼容FF、IE)

    兼容FF,IE等浏览器的弹出层教程

    功能描述 功能性 1.是否显示标题栏 ...3.是否显示关闭按钮 4.是否固定定位 5.自定义设置窗体弹出位置 6.是否显示遮罩层 7.遮罩层颜色设置 8.遮罩层透明度设置 9.窗口层叠顺序设置,以...2.ie6中窗体模拟固定定位的缓动效果

    网络拓扑图生成(js版 IE&FF兼容)

    /* * * 脚本名称:网络拓扑图 * * 脚本版本:v1.0 * ... * * 版权说明: * * 脚本版权归作者所有,仅供学习使用,如果用于商业用途请与... 获得拓扑 ajaxurl 返回对象为NodeList结构的json对象文本 * */

    超牛的AJAX下拉菜单(调用即可用)

    这是做网页下拉菜单首选资源,做BS软件界面也很不错的,用的时候只稍改下你的CSS样式(即是改成与你的网页风格一样的样式)即可,IE/FF兼容,鼠标经过动态展现,推荐大家使用

    Ajax 简单封装类库

    ajax轻量级封装,简单实用,带有详细注释。 一、同一个对象可以发送多个请求,按顺序执行请求,有简单的超时机制,...二、兼容IE,FF,支持同步、异步请求; 三、测试通过:IE6+,FireFox2.0; 四、代码精简、实用。

    AJAX+asp识别身份证

    (大家下载最新的版本,兼容ie6和ff2,这个版本只适用ie6)AJAx+asp可以根据身份证号码的输入,自动把所属省,市和区域读出来.压缩包里面含有行政区划代码的access数据库,read.asp,index.htm,check.js,身份证格式的说明,...

    jQuery实例ajax技术,搜索带提示的输入框

    基于jQuery的一个实例,模仿了Google搜索的输入框提示功能,目前百度等也有此功能,可以省去用户完全输入查询字符的麻烦,使用灵活,支持xhtml,兼容IE6,IE7,FF等良好特点。本次更新了很多功能,详情请查看压缩包内...

    新手练习 Ajax请求封装进JavaScript类

    初学者(同胞们)可以看一下, 高手们就闪吧(小弟不才)。 Ajax请求封装 超时处理 不能同时请求一次,但可以声明两个对象来完成。 IE和FF兼容问题(只测部分)

    使用JQUERY 自创的自定义右键菜单插件

    我的原创: 花生米AJAX-UI系列之:基于JQUERY的右键菜单0.1版 可以对表格,列表,"树",或者单个DOM容器进行右键绑定 菜单项的文字、图标样式,调用方法均...经测试,兼容IE6--IE8,FF,CHROME浏览器 详细说明请参见API

    兼容各大浏览器的validator验证插件

    该插件是我跟一个朋友改进博客园的那个验证js,已经测试通过ie6+,ff,google等浏览器,使用比较建议,缺陷可能ajax验证的方式没有很强大,只适用简单的ajax验证,equals比较器尚有漏洞,所以请大家共同改进下这个框架,让...

Global site tag (gtag.js) - Google Analytics