`
yushu1987
  • 浏览: 16593 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ajax主流浏览器的中文参数传递

    博客分类:
  • ajax
阅读更多
    做web的童鞋经常遇到这样的痛苦,前端传递给后台的中文参数是乱码,导致无法正确查询数据库或做文件处理。现在主流的浏览器主要是三种:IE,Firefox,Chrome。
    我个人在web时,比较喜欢用Chrome做测试展示,因为平时都常用Chrome。我看过各大浏览器之间的比较,Chrome的综合实力是很给力的,Google出品的浏览器果然很牛。Firefox是比较常用的浏览器,懂计算机的都喜欢用Firefox,因为Firefox是比较早脱离IE内核,在性能上又比IE好,且又是开源的内核,所以一旦发布,就对IE浏览器的市场产生很大的冲击,IE是仗着微软的操作系统邦定,所以一直把持着浏览器的主要市场。
    好了,说了很多废话,进入正题把。ajax传递参数的方法有两种,GET和POST。GET的使用比较简洁,传递参数可以直接把url中,类似于search.php?name='wangjian',而XMLHttpResponse.send方法的参数为空,GET方式的send一定为空,search.php中获取GET参数时只需
$name=$_GET['name']
,search.php中就可以使用$name变量;而POST方法无需把参数拼接在url中,而是使用send函数传递给后台,而url只需设定指定的后台处理php文件,处理方式如下:
  var url='php//save_file.php';
  var params='file_name='+file+'&type='+type';
  ....
  xmlHttp.open("POST",url,false);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", params.length);
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.send(params); 

xmlHttp.setRequestHeader三个语句时必须的,这是传递过长参数时,必须添加的语句。后台获取参数的方法类似于GET。两者方法有一些不同,GET使用简单,执行效率块,但不安全,因为参数都写在url中,适合无需保密的一次性参数传递;POST参数使用安全,传递参数大,适合安全可交互的长参传递。
    ajax在中文参数时,会根据浏览器的不同,需做不同的处理,Firefox和Chrome在接受中文,需做编码转换处理
$file_name=iconv("UTF-8","GB2312",$file_name);

IE则无需做这些处理,可以直接使用,所以在GET或POST这些参数后,需要判断当前的浏览器是,并根据类型做不同的处理,判断浏览器的方式有两种,一是js把浏览器类型传至后台,二是后台php自行判断浏览器类型;js判断是否为IE浏览器可以使用
if(document.all)
  alert('IE');
else
  alert('No IE');

php判断浏览器可以使用
$type=$_SERVER["HTTP_USER_AGENT"];

    综上所述,传递中文参数时,需要判断浏览器类型,假设$type是否为IE的标识,$type=0,IE;else no IE。如此代码如下:
   if($type!=0)
    {
      $file_name=iconv("UTF-8","GB2312",$file_name);
      ..... //其他中文参数
     }

  好了,写了这么多,大家可以去试一下。
分享到:
评论

相关推荐

    可定制的实时搜索JQUERY插件与主流浏览器兼容.zip

    这个名为"可定制的实时搜索JQUERY插件与主流浏览器兼容.zip"的压缩包提供了一个针对实时搜索功能的jQuery插件,适用于各种主流浏览器,如Chrome、Firefox、Safari、Edge等。 实时搜索,也称为即时搜索或动态搜索,...

    ASP.NET AJAX深入浅出系列课程(20):使用Microsoft AJAX Library中的浏览器兼容功能

    通过学习和应用Microsoft AJAX Library中的浏览器兼容功能,开发者可以创建出不仅功能强大,而且能够在Internet Explorer、Firefox、Chrome、Safari和Opera等主流浏览器上良好运行的ASP.NET AJAX应用程序。...

    Rebox lightbox相册代码,实用简单,支持响应式设计。兼容主流浏览器.rar

    4. 兼容主流浏览器:Rebox lightbox的兼容性是其重要特点之一,这意味着它可以在包括Chrome、Firefox、Safari、Edge和Internet Explorer在内的主流浏览器上正常工作。为了实现这一点,开发者可能需要对代码进行跨...

    探讨Ajax获取表单值向Servlet传递的设计方案.doc

    不同的浏览器可能有不同的实现方式,因此在编写Ajax代码时,通常会先创建一个兼容所有主流浏览器的初始化方法。例如,以下代码展示了如何创建一个XMLHttpRequest对象: ```javascript function initXmlHttp() { ...

    ajax 4jsf用户指南中文版

    - **支持的浏览器**:主流浏览器如Chrome、Firefox等。 #### 七、附加设置 - **Web程序描述符参数**: - Sun JSF RI、Apache MyFaces、Facelets支持、JBoss Seam支持等特定设置。 - 针对不同JSF实现的特定配置项...

    js写的可展开收缩的QQ在线客服代码,兼容IE8-10,Chrome,Safari,Firefox等主流浏览器.rar

    该压缩包包含的是一个使用JavaScript编写的QQ在线客服系统,其特点是支持在多个主流浏览器上运行,包括较为老旧的Internet Explorer 8至10,以及现代的Chrome、Safari和Firefox。JavaScript是一种广泛用于网页开发的...

    ajax4jsf中文用户指南

    对于浏览器,Ajax4JSF通常支持主流的现代浏览器。 **下载与安装**:从官方网站或其他可靠来源下载Ajax4JSF的最新版本,然后按照文档指示将其添加到你的项目类路径中。对于Web应用程序,可能需要更新`WEB-INF/lib`...

    自适应屏幕的Swipebox相册代码,基于jQuery编写,可点击放大图片,支持键盘左右键翻页。兼容主流浏览器,调用灵活.rar

    这个插件的亮点在于它的兼容性和灵活性,能够很好地适应各种主流浏览器,包括Chrome、Firefox、Safari、Opera以及Internet Explorer等。 Swipebox的核心功能和特点包括: 1. **自适应设计**:Swipebox针对不同屏幕...

    jQuery手机页面通知组件,通知可以从顶部、底部、左侧、右侧等四个方位出现,可控制速度。兼容主流浏览器

    - **兼容性**:组件经过优化,兼容主流的桌面和移动浏览器,如Chrome、Firefox、Safari、Edge以及各种Android和iOS内置浏览器,确保了广泛的应用场景。 ### 3. 使用方法 要使用此组件,首先需要在项目中引入jQuery...

    Ajax XMLHttp 手册 中文版

    除了XML,Ajax常用的数据交换格式还包括JSON(JavaScript Object Notation),因其轻量级和易于解析的特性,现在已成为更主流的选择。JSON格式的数据可以直接转换为JavaScript对象,简化了数据处理。 四、Ajax的...

    Ajax4JSF用户指南

    此外,框架支持多种Java版本、JSF实现、Web服务器以及主流浏览器。为了适应不同的开发环境,Ajax4JSF可以与其他IDE集成,例如Exadel VCP,以简化开发流程。 在配置方面,可以通过Web应用程序描述符参数进行定制,如...

    AJAX In Action(中文版)

    - **跨浏览器兼容**: 不同浏览器对AJAX的支持程度不同,开发时需考虑IE、Firefox、Chrome等主流浏览器的差异。 - **错误处理**: 通过异常处理和日志记录,确保在出现错误时有合适的反馈。 通过《AJAX In Action...

    RichFaces中的Ajax组件的使用指南

    7. **a4j:actionparam**:用于传递额外的参数给服务器。 8. **a4j:status**:显示Ajax请求的状态信息。 9. **a4j:loadBundle**:加载资源束,支持国际化。 10. **a4j:mediaOutput**:用于输出媒体文件,如图片或音频...

    Selenium浏览器驱动最新版 - 2018-05-18

    在2018年5月18日发布的这个压缩包中,包含了Selenium支持的三个主流浏览器——Firefox、Google Chrome和Microsoft Edge的对应WebDriver驱动程序。 **1. Selenium WebDriver** Selenium WebDriver 是Selenium的一个...

    Ajax4JSF开发人员指南

    - **支持的浏览器**: 主流浏览器,如 Chrome、Firefox、Safari 等。 #### 七、附加设置 - **Web 程序描述符参数**: 用于配置 Ajax4JSF 的运行时行为。 - **资源管理**: Ajax4JSF 提供了强大的资源管理功能,支持将...

    Ajax跨域提交

    服务器返回一个JavaScript函数调用,将数据作为参数传递,前端通过回调函数接收数据。这种方式仅支持GET请求。 2. CORS(Cross-Origin Resource Sharing):CORS是现代浏览器支持的跨域解决方案,它通过在HTTP响应头...

    ajax4jsf 用户指南

    - **浏览器**:支持多种主流浏览器。 #### 1.2 安装与配置 安装过程包括下载 Ajax4jsf 库,将其添加到项目的类路径中,然后在必要的配置文件(如 `faces-config.xml` 和 `web.xml`)中进行设置。为了实现基本的 ...

    ajax中文开发文档

    - 支持Firefox、Mozilla、大部分基于Mozilla的浏览器、Internet Explorer以及Safari等主流浏览器。 - **灵活的内容更新**: - 除了更新元素的值和内含的HTML内容,还可以更新样式、CSS类、多选和单选按钮的选择状态...

    ajax实例源码

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这一技术的核心在于JavaScript,XML则...

    AJAX技术基础

    JSON由于其轻量级和易读性,已经成为AJAX交互中的主流数据格式。 ### 4. 应用场景 - **表单无刷新提交**:用户填写表单后,AJAX可以异步提交数据,避免页面刷新带来的用户体验中断。 - **实时数据更新**:如股票...

Global site tag (gtag.js) - Google Analytics