xmlHttp post提交表单 需注意编码(escape)

2024-01-12 10:18

本文主要是介绍xmlHttp post提交表单 需注意编码(escape),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


function getReviews(){
//var pai= document.assess.pai.Reviews
if(check()){
createXMLHttp_s();
strA = "Reviews="+document.assess.Reviews.value;   //Looks like QueryString,But there's no "?" here!变量赋值
tiao="../includepage/getReviews.asp?action=photo";
xmlHttp_s.open("POST",tiao,false);
xmlHttp_s.setRequestHeader("Content-Length",strA.length);
xmlHttp_s.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
xmlHttp_s.send(strA);
         if(xmlHttp_s.status==200){
           var j= xmlHttp_s.responseText
            document.getElementById("ReviewsText").innerHTML=j;
        }
}
}

 

JavaScript 中解决 Microsoft.XMLHTTP 乱码 的最简单方法

关于 Microsoft.XMLHTTP 乱码 ,您还可以参考千一网络的专业+原创内容:Ajax 专题 。

  • 在数据发送一方,利用 javascript 的 escape 函数事先将所有中文转换成英文编码并保存(也可以用 ASP 等其它语言的函数实时转换输出)。
  • 在数据接收一方,利用 javascript 的 unescape 函数将所有英文编码还原。

由于 Ajax 不论任何编码都能正常传送英文,所以用这种方法可以轻松解决。


环境:JavaScript 作为脚本语言的 ASP,也可扩展到客户端的 JavaScript。

以下函数为自定义组件 bluec.bluecData2 的代码:
function execSql(pSql, params)
{
    var result = -3;
    formDoc = "<sqls>/n" +
              "<sql>" + pSql + "</sql>/n" +
              "</sqls>";
    var oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    oXmlHttp.Open("POST", "../util/execsql.asp", false);
    oXmlHttp.setRequestHeader("Content-Type", "text/ xml ");
    oXmlHttp.setRequestHeader("charset", "utf-8");

    oXmlHttp.Send(formDoc);
    if (oXmlHttp.status == 200)
    {
        var rText = oXmlHttp.responseText;
        if (rText.substring(0,1) == "0")
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    return false;
}

调用 bluec.bluecData2 组件的页面内容:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<%
var errMsg = "0";
obj = new ActiveXObject("bluec.bluecData2");
errMsg = obj.execSql(Request);
Response.Charset = "utf-8";
Response.ContentType = "text/xml ";
Response.Write(errMsg);
obj = null;
%>

当errMsg包含中文时,oXmlHttp.responseText 返回的值是乱码 ,怪了,在 jsp 中同样的实现方法居然没有问题。在网上搜索,发现解决最重要的解决办法是写一个函数来转换 oXmlHttp.responseText 的编码格式。该 VBScript 函数是 byte2sBSTR,但是我的代码全部是 JavaScript,据说 JavaScript 也可以直接调用 VBScript 函数,心里好不舒服,这些小问题好花时间。继续搜索吧,看有没有纯 JavaScript 的解决办法,在一个论坛上发现一个高手对此问题的回复:

unescape

真是简单之至,点到为止。unescape 有什么用,通过实验:

var rText = oXmlHttp.responseText; 改成 var rText = unescape(oXmlHttp.responseText);

Response.Write(errMsg); 改成 Response.Write(escape(errMsg));

居然OK了,太棒了。

 

这篇关于xmlHttp post提交表单 需注意编码(escape)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/597552

相关文章

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

Java中字符编码问题的解决方法详解

《Java中字符编码问题的解决方法详解》在日常Java开发中,字符编码问题是一个非常常见却又特别容易踩坑的地方,这篇文章就带你一步一步看清楚字符编码的来龙去脉,并结合可运行的代码,看看如何在Java项... 目录前言背景:为什么会出现编码问题常见场景分析控制台输出乱码文件读写乱码数据库存取乱码解决方案统一使

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Java 中编码与解码的具体实现方法

《Java中编码与解码的具体实现方法》在Java中,字符编码与解码是处理数据的重要组成部分,正确的编码和解码可以确保字符数据在存储、传输、读取时不会出现乱码,本文将详细介绍Java中字符编码与解码的... 目录Java 中编码与解码的实现详解1. 什么是字符编码与解码?1.1 字符编码(Encoding)1

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细