weixin_40195214
weixin_40195214
2018-11-02 08:33
采纳率: 0%
浏览 2.6k

alipay支付返回form,异步调取,当subject属性有中文时请求出现错误

开发支付宝支付,现在由后端返回的是一串html代码,也就是form表单,我展示的方式是
先开一个新得浏览器窗口,再将这段代码写入,具体如下:

             const newTab = window.open();
    const div = document.createElement('div');
    div.innerHTML = res.data;
    newTab.document.body.appendChild(div);
    newTab.document.forms[0].submit();

            但是这种就会出现验签失败现象;

            经过排查,是由于支付宝支付的一个参数subject中有中文,发现我传过去的参数是经过gb2312编码,但是支付宝解码是utf-8解码,所以会出现中文乱码报错的现象!!!!

            但是,在新开的页面加上“<meta http-equiv="Content-Type" content="text/html; charset=utf-8">”也是没用的。
            而且我在原有的页面上加上那段form代码执行就不会报错,会按照utf-8编码,但是用window.open()新开页面就会报错。

            请各位大神帮帮忙,谢谢!!!!
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • caozhy

    对中文调用encodeURI做一个urlencode编码 https://blog.csdn.net/zhangge360/article/details/51954653

    点赞 评论
  • weixin_41775347
    weixin_41775347 2019-04-01 17:49

    我是搞前端的,在前端也可以对支付宝返回的表单进行调用吗?还是前后端都要做修改才行

    点赞 评论

相关推荐