美文网首页
开发中document.referrer引发的两个错误

开发中document.referrer引发的两个错误

作者: 半吊子伯爵 | 来源:发表于2024-05-25 19:50 被阅读0次

1、问题描述

        在一个工作项目中(Vue单页面应用),使用到两个第三方服务:

        1)使用接口https://whois.pconline.com.cn/ipJson.jsp?callback=IPCallBack&ip= 获取IP位置

        2)使用微信H5支付接口实现支付流程

        这两个服务在document.referrer上存在一个冲突:

        1)IP定位接口貌似不允许外部网站调用,它会检查referrer,若是外部网站,则会报403错误。

1

<meta name="referrer" content="no-referrer"/><!-- 隐藏外部链接中的referrer,在head标签中加入meta -->

<meta name="referrer" content="never"/><!-- 兼容IE浏览器-->

        为了解决这个问题,需要在页面head中添加如下两个meta标签

        2)微信H5支付接口在使用时,也会检查referrer,若该信息为空,则会报错“商家参数格式有误,请联系商家解决”,无法进入支付流程。为了解决这个问题,就需要页面head中不能有content="no-referrer"和content="never"的meta标签

2

2、解决方案

        1)当网站初始化时获取IP位置,获取完成后移除这两个meta标签(×)

let meta_1 = document.querySelector('#meta_1')

let meta_2 = document.querySelector('#meta_2')

meta_1.remove()

meta_2.remove()

        但是这样操作以后并没有达到预期的效果。

        2)当网站初始化时获取IP位置,获取完成后修改这两个meta标签的属性值(√)

let meta_1 = document.querySelector('#meta_1')

let meta_2 = document.querySelector('#meta_2')

meta_1.setAttribute('content', 'unsafe-URL')

meta_2.setAttribute('content', 'unsafe-URL')

        如此修改后,问题解决

3

相关文章

  • 开发中的错误

    一、ld: library not found for -lcrypto clang: error: linker...

  • Java入门系列07 -- 异常,正则表达式

    开发中错误 在Java开发中,会遇到各种各样的错误;语法错误:会导致编译失败,程序无法正常运行;逻辑错误运行时错误...

  • golang错误和异常

    go错误和异常 错误和异常是两个不同的概念,但我们在开发中又非常容易混淆这两个概念,把一切非正常情况都看做是错误,...

  • 开发中遇到的错误

    .h文件中报错 unterminated conditional directive 此报错原因是因为条件编译缺少...

  • 开发中遇到的错误

    arraylist = 地址是一样的。 add() 是重新赋值; AndroidManifest tools:la...

  • NSError对照码

    前言整理一下在iOS开发中NSError的错误代码 NSError NSError是系统错误信息类 初始化方法两个...

  • document.referrer

    referrer 属性返回载入当前文档的来源文档的URL。如果当前文档不是通过超级链接访问的,则为 null。这个...

  • jni开发中的常见错误

    java.lang.UnsatisfiedLinkError: Native method not found: ...

  • 开发中遇到的LOG错误.

    今天帮网上的朋友解决问题,因为以前遇到过,突然之间想不起来了,所以想着以后遇到log错误就记录下来.便于以后查找 ...

  • iOS开发中遇到的错误

    错误描述: Failed to chmod user/Library/Developer/CoreSimulato...

网友评论

      本文标题:开发中document.referrer引发的两个错误

      本文链接:https://www.haomeiwen.com/subject/dkgfqjtx.html