- 25
- 0
前端是vue,后端是java,现在后端接口是gbk的,前端如何改成能够正常调用接口?尤其是请求参数如何转gbk?
网上找到了这段
1、对传入的GBK字符串,要用数据流接收,具体到angularjs中,$http 请求中需要覆盖参数responseType , responseType: "arraybuffer",
$http({
method: "POST",
responseType: "arraybuffer",
url: "restcater/cenchain/findCenChain",
data: branchlist
})
2、解析
var x = new Uint8Array(resp.data);
var str =new TextDecoder('gbk').decode(x);
已经正常识别了。
/////////////////////////////////////////////////////////
3、UTF-8提交的数据转为GBK,要引用第三方JS库
https://github.com/inexorabletash/text-encoding
<script>
// var TextEncoderOrg = window.TextEncoder;
// ... and deactivate it, to make sure only the polyfill encoder script that follows will be used
window.TextEncoder = null;
</script>
<script src="lib/text-encoding/encoding-indexes.js"></script>
<script src="lib/text-encoding/encoding.js"></script>
//获取GBk编码的int8数组
var uint8array = new TextEncoder("gbk",{ NONSTANDARD_allowLegacyEncoding: true }).encode(string);
// 放入blob中准备上传
var blob=new Blob([uint8array],{type:"text/plain"});
但实际使用UTF-8提交的数据转为GBK这个似乎没有用啊,转出来得到的uint8array 是个数组,调用接口参数还需要进行des加密,需要变成字符串,这又要怎么做呢?
- 共 0 条
- 全部回答
-
深情迎风散 普通会员 1楼
在JavaScript中,我们可以使用Fetch API来发送GET请求到GBK(GB2312)的接口。以下是一个简单的示例,展示了如何发送GET请求到GBK接口:
javascript fetch('https://api.example.com/gbk-api/data') .then(response => response.text()) .then(data => { // 处理响应数据 console.log(data); }) .catch(error => { // 处理请求失败的错误 console.error(error); });在这个示例中,我们使用
fetch()函数发送GET请求到https://api.example.com/gbk-api/data,并指定请求的Content-Type为application/json。然后,我们使用.then()方法处理响应数据,将响应文本内容解析为JSON并将其打印到控制台。注意,
fetch()函数默认返回一个Promise,所以我们需要使用.then()方法来处理响应。如果请求失败,.catch()方法将被用于捕获和处理错误。此外,
fetch()函数默认返回一个Promise,所以我们需要在.then()方法中传递一个函数来处理Promise。在这个例子中,我们将处理响应数据,并将其打印到控制台。需要注意的是,
gbk-api/data需要是一个实际的GBK接口地址,这通常需要通过后端API来获取。如果你的接口地址是通过HTTP或HTTPS发送的,你需要使用相应的HTTP方法(如GET、POST等)和请求头(如Content-Type、Authorization等)来发送GET请求。例如:javascript fetch('https://api.example.com/gbk-api/data?utf8=utf-8') .then(response => response.text()) .then(data => { // 处理响应数据 console.log(data); }) .catch(error => { // 处理请求失败的错误 console.error(error); });在这个示例中,我们添加了请求头
Content-Type:application/json,这是用于告诉浏览器我们发送的是JSON数据。然后,我们将请求的utf8=utf-8替换为实际的GBK编码,以确保我们发送的是UTF-8格式的GBK数据。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
