Power_Judge 2022-07-03 21:08 采纳率: 0%
浏览 61
已结题

如何封装前端获取IP地址的js文件问题,让每一个前端界面只需要调用这个封装好的js文件就可以实现IP调用?

如何解决在单独的js文件封装IP地址接口?
问题相关代码,请勿粘贴截图

function constUpdate()
{
    $.ajax({
        url: "https://pv.sohu.com/cityjson?ie=utf-8",
        type: 'get',
        dataType: 'json',
        crossDomain: true,
        success:function (data) {
            alert(data)
        },
        error:function (dat){
          alert(returnCitySN["cip"]);

        }
    });
}

在操作的时候打算使用单独的js文件封装,这样在每一个jsp界面只需要调用就可以获得用户的IP地址了,但是这样的写法明显是有问题的。但是如果直接尝试使用
```javascript
document.write("<script src=\"https://pv.sohu.com/cityjson?ie=utf-8\"></script>");

这样的话,就会出现这种提示

img

所以请教下各位来解决,把上面的网址封装成单独获取IP地址的js文件。然后在没一个jsp界面上只需要调用这个文件就可以把相应的IP数据传入到后台了。
  • 写回答

6条回答 默认 最新

  • Heerey525 前端领域新星创作者 2022-07-03 22:57
    关注
    获得2.50元问题酬金

    将获取ip的方法封装在一个getIpInfo.js文件中

    function constUpdate() {
      return new Promise((resolve, reject) => {
        $.ajax({
          url: "https://pv.sohu.com/cityjson?ie=utf-8",
          type: "get",
          dataType: "json",
          crossDomain: true,
          success: function (data) {
            resolve(data);
            window.sessionStorage.setItem("ipInfo", data);
          },
          error: function (dat) {
            reject(returnCitySN["cip"]);
          },
        });
      });
    }
    async function getIpInfo() {
      let ipInfo = window.sessionStorage.getItem("ipInfo");
      if (ipInfo) return ipInfo;
      ipInfo = await constUpdate();
      return ipInfo;
    }
    

    使用方式

    <script src="./getIpInfo.js"></script>
    <script>
      // 使用
      const ipInfo = getIpInfo();
    </script>
    
    评论

报告相同问题?

问题事件

  • 系统已结题 7月11日
  • 创建了问题 7月3日

悬赏问题

  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住