`
JavaChinaren
  • 浏览: 22867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

跨域提交form表单并转码(GBK→UTF-8)

阅读更多
A 域下的网页编码格式是 GBK    www.A.com 提交一个查询信息:搜索 XXX
B 域下的网页编码格式是 UTF-8  www.B.com 中对外有 search.do
在 A 域下提交form表单 POST 到 B 域下的某个相应的 action

通常方法:
从HTML页面提交到 action 我们可以考虑在servlet中转码再转发,不过这样好像太麻烦不如在发送的时候就编码好了再请求

FF与IE在HTML页面中解决方法及区别:
FF支持 accept-charset (W3C标准)
万恶的IE需要在提交的时候指定charset (不按照标准,万恶,当诛)

Html代码 
1.<form name="xxForm" method="post" accept-charset="utf-8" onsubmit="document.charset='utf-8';" action="http://www.B.com/search.do"> 
2.... ...  
3.<input type="submit" value="提交"> 
4.</form> 

JS提交表单,IE需要注意的问题:
如果使用的是JS方式提交表单,那么应该在document.xxForm.submit()前使用 document.charset='utf-8'; 将编码格式转换成 utf-8,此时form中的onsubmit就没有作用了 删除之

其他get方式提交表单例子:
对于百度来说就可以提交一个get请求到
http://www.baidu.com/s?wd=这里是你要搜索的东西
使用世界之窗浏览器的人会发现最后使用右上角的搜索,地址栏会有 &ie=utf-8,通过这种方式告诉百度传入的编码格式,默认在百度中搜索就不存在编码问题了

同样适用百度搜索

Url代码 
1.世界之窗:  
2.http://www.baidu.com/s?wd=hello&tn=ichuner_1_dg&ie=utf-8 
3.百度默认搜索:  
4.http://www.baidu.com/s?wd=hello 
世界之窗:
http://www.baidu.com/s?wd=hello&tn=ichuner_1_dg&ie=utf-8
百度默认搜索:
http://www.baidu.com/s?wd=hello

同样搜索 hello 这个词,因为存在跨域问题,因此世界之窗加入了编码格式字段并加入了广告成分,"tn=ichuner_1_dg" 这个估计和搜索分成有关吧...
分享到:
评论

相关推荐

    百度编辑器asp版UTF-8编码

    百度编辑器ASP版UTF-8编码是一个用于网页内容编辑的工具,它专为ASP(Active Server Pages)开发环境设计,并采用UTF-8编码标准。UTF-8是一种广泛使用的多字节字符编码,能够支持全球大部分语言,包括中文,使得...

    EXT异步提交FORM表单

    在现代Web应用开发中,异步提交表单是一种常见的技术手段,它能够提升用户体验,减少页面刷新带来的数据丢失风险,并能有效提高系统的响应速度。EXT框架(通常指的是Ext JS)作为一种成熟且功能丰富的JavaScript库,...

    php实现跨域提交form表单的方法【2种方法】

    当需要从一个域向另一个域的服务器提交表单时,就会遇到跨域问题。本文将详细探讨如何在PHP中实现跨域提交form表单,并详细介绍了两种方法:使用PHP cURL库和利用jQuery的ajaxSubmit方法。 首先,我们来看看使用...

    JQuery AJAX跨域提交参数、接收json数据.docx

    使用 `Request.Form` 可以获取提交的表单数据,该方法可以获取到所有的表单数据,包括文本框、下拉框、复选框等。 2. 通过映射到控制器参数方式 使用控制器参数可以将提交的数据直接映射到控制器的参数中,该方法...

    form表单提交,jquery-form.js

    1. **异步提交**:通过Ajax方式提交表单,无需页面刷新,提高用户体验。 2. **文件上传**:支持文件类型的输入字段,可以实现无刷新的文件上传,包括多文件上传。 3. **进度条显示**:对于文件上传,插件可以显示...

    js跨域iframepostMessage提交表单

    综上所述,"js跨域iframepostMessage提交表单"的实现策略结合了iframe、form、postMessage以及事件监听等多个JavaScript特性,有效解决了跨域提交表单,尤其是包含文件上传的复杂场景,并且能获取返回值,提高了用户...

    jsp中在提交表单时的中文处理问题

    这将告诉浏览器以UTF-8编码提交表单数据。但请注意,这并不保证服务器端会正确处理,还需要服务器端的配合。 3. 服务器端处理:在JSP中接收表单数据时,可以通过设置请求对象的编码来确保正确解码。通常在Servlet...

    ajaxForm异步提交表单(含图片)

    总的来说,ajaxForm异步提交表单是实现高效、流畅的用户交互的有效方式,特别是当表单包含图片或其他大文件时。通过正确配置和使用,可以极大地提高网站的性能和用户体验。在实际开发中,还需要注意跨域、安全性和...

    谷歌跨域插件Access-Control-Allow-Origin

    标题中的“谷歌跨域插件Access-Control-Allow-Origin”指的是在谷歌浏览器上使用的扩展程序,用于解决Web开发过程中遇到的跨域问题。跨域是由于浏览器的同源策略(Same-origin policy)引起的,它限制了来自不同源的...

    跨域访问---------

    这个方式是有局限性的,因为不同浏览器的跨域设置不相同,甚至相同浏览器不同版本的设置都可能不同,我自己现在都只知道chrome的跨域设置,IE和firefox的看过,但是记不住了,总之,设置浏览器跨域,只适合临时用...

    Tomcat解决跨域的两个jar包java-property-utils-1.9.jar和cors-filter-1.7.jar

    在开发Web应用时,跨域问题常常困扰着开发者。跨域是由于浏览器的同源策略(Same-Origin Policy)限制,导致不同源的请求无法互相访问。然而,随着现代Web服务的发展,API接口的广泛使用,跨域问题变得越来越普遍。...

    Nginx跨域设置Access-Control-Allow-Origin无效的解决办法

    使用大家说的以下配置,验证无效,跨域问题仍然存在 add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET,...

    报表开发工具FineReport在ie8下的跨域提交

    charset=utf-8"/&gt; &lt;title&gt;Untitled Document window.name = "aaaa"; function f() {} function send(msg) { sendMessage(msg); } (function (win, doc) { var ifr = doc.getElementById('iframeA')....

    https跨域POST提交实例(基于servlet)

    5. **JSONP支持**:如果需要支持旧版浏览器(如IE8)的跨域,可以考虑使用JSONP(JSON with Padding)。JSONP是一种通过动态插入`&lt;script&gt;`标签实现跨域的数据交换方式。Servlet可以通过参数名(如`callback`)识别...

    使用AJAX提交Form表单

    在我们的示例中,文件名为"jquery+ajax+form",这可能是指使用jQuery的`.ajax()`或`.serializeArray()`方法提交表单。 1. 使用jQuery的`.ajax()`方法: ```javascript $.ajax({ type: 'POST', url: 'your_server...

    Ajax跨域提交

    Ajax跨域提交是Web开发中的一个重要概念,它涉及到前端JavaScript与后端服务器之间的异步数据交互,特别是当这种交互跨越了不同的源(域名、协议或端口)时。在了解Ajax跨域提交前,我们首先需要理解Web浏览器的同源...

    ajax提交中文到servlet

    在JavaScript中,字符串默认使用UTF-8编码,而在服务器端,如Servlet,通常也应使用UTF-8来处理请求和响应,以避免乱码问题。 2. HTTP头设置:在发送Ajax请求时,需要设置Content-Type头,告知服务器请求体的数据...

    TOMCAT 跨域 CORS Access-Control-Allow-Origin cors-filter

    在IT行业中,尤其是在Web开发领域,跨域问题是一个常见的挑战。跨域资源共享(CORS,Cross-Origin Resource Sharing)是W3C制定的一项标准,用于允许浏览器安全地进行跨域请求,以解决传统的同源策略限制。标题...

    谷歌跨域插件allow-cors-access-control.zip

    标题中的“谷歌跨域插件allow-cors-access-control.zip”指的是一个用于解决浏览器跨域问题的Chrome插件。跨域资源共享(CORS)是一种机制,它允许Web应用程序从不同的源请求资源,比如JavaScript通过Ajax从非同源的...

Global site tag (gtag.js) - Google Analytics