首页 > 其他分享 >获取第三方GET接口的data数据,服务器需要设置正确的 Access-Control-Allow-Origin

获取第三方GET接口的data数据,服务器需要设置正确的 Access-Control-Allow-Origin

时间:2024-08-05 17:08:54浏览次数:10  
标签:Control Origin GET baidu02 apkAddress 响应 data response

在现代Web开发中,由于同源策略的限制,浏览器通常不允许从一个域名(origin)直接访问另一个域名的资源,除非服务器端设置了适当的CORS(跨源资源共享)策略。
项目中如何直接获取get接口https://api.cp.139.com/cgate/cme/v1/appUpgrade/version?channel=baidu02 下的接口相应对象:
{
"code": "200",
"msg": "操作成功",
"header": null,
"info": {
"versionNo": "2.1.0",
"upgradeType": 30,
"upgradeDesc": "1、优化了网络保障服务,提供更稳定、流畅的使用体验。 \n2、修复已知问题,优化产品体验。",
"channelCode": "baidu02",
"channelName": "百度投放02",
"apkAddress": "https://obs-wx-ysj-xnl-pro-001.obs.cidc-rp-12.joint.cmecloud.cn:443/public/upgrade/apk/baidu02/cloudphone-heyingyun-baidu02-v2.1.0-20240701_1446-release_20240701150412_sec_sign.apk"
},
"success": true
}
下的apkAddress

要获取第三方接口 https://api.cp.139.com/cgate/cme/v1/appUpgrade/version?channel=baidu02 下的 apkAddress,您可以使用JavaScript中的 fetch API来发起GET请求。以下是一个示例代码,展示了如何获取接口响应对象并提取 apkAddress

// 使用fetch发送GET请求
fetch('https://api.cp.139.com/cgate/cme/v1/appUpgrade/version?channel=baidu02')
  .then(response => {
    // 首先检查响应的状态
    if (response.ok) {
      // 如果响应状态码为200-299,解析JSON响应体
      return response.json();
    } else {
      // 如果响应状态码不是200-299,抛出错误
      throw new Error('Network response was not ok.');
    }
  })
  .then(data => {
    // 处理JSON响应数据
    console.log('APK地址:', data.info.apkAddress);
    // 在这里您可以使用data.info.apkAddress变量
  })
  .catch(error => {
    // 处理请求过程中发生的任何错误
    console.error('请求失败:', error);
  });

在这段代码中:

  1. 使用 fetch 函数发起GET请求到指定的URL。
  2. 使用 .then() 方法处理响应,首先检查响应是否成功(response.ok)。
  3. 如果响应成功,使用 response.json() 解析JSON格式的响应体。
  4. 在第二个 .then() 方法中,访问解析后的响应数据 data,并提取 apkAddress 字段。
  5. 如果请求或响应处理过程中发生错误,使用 .catch() 方法捕获并处理这些错误。

请注意,由于网络请求是异步的,所以 apkAddress 的值将在 fetch 调用的Promise解决后获得。您可能需要根据实际情况将这段代码放在组件的适当生命周期钩子中,例如Vue组件的 mounted 钩子。

此外,由于您提供的URL可能受到CORS策略的限制,如果服务器没有设置正确的 Access-Control-Allow-Origin 头,浏览器可能会阻止脚本访问响应数据。如果遇到这种情况,您需要确保服务器端配置了正确的CORS策略,或者使用代理服务器来绕过CORS限制。

标签:Control,Origin,GET,baidu02,apkAddress,响应,data,response
From: https://www.cnblogs.com/yoona-lin/p/18343588

相关文章

  • 出现 No mapping for DELETE/GET等
    出现NomappingforDELETE/GET等错误一:请求url不对修改前如下图可知后端请求url为http://localhost:8080/user/addressBook运行后控制台出现发现后端请求url比前端请求url少了/改正:在@DeleteMapping后面加上/ @DeleteMapping("/")@ApiOperation("根据id......
  • 【禁止血压飙升】阿里大佬写的 Controller 太优雅了!
    作者:小塵链接:https://juejin.cn/post/7357172505961578511前言见过几千行代码的controller吗?我见过。见过全是trycatch的controller吗,我见过。见过全是字段校验的controller吗,我见过。见过全是业务代码的controller吗?不好意思,我们公司很多业务写在controller的......
  • 方天云智慧平台系统 GetSalQuatation SQL注入漏洞复现
    0x01产品简介方天云智慧平台系统,作为方天科技公司的重要产品,是一款面向企业全流程的业务管理功能平台,集成了ERP(企业资源规划)、MES(车间执行系统)、APS(先进规划与排程)、PLM(产品生命周期)、CRM(客户关系管理)等多种功能模块,旨在通过云端服务为企业提供数字化、智能化的管理解决方案......
  • 字符专用输入输出函数 getchar() putchar()
    文章目录一、字符专用接收函数1.1scanf实现字符接收1.2字符专用接收函数getchar1.3练习1.4利用循环使字符接收函数接收字符串的元素二、字符专用输出函数2.1printf实现打印字符2.2字符专用输出函数putchar提示:以下是本篇文章正文内容,下面案例可供参考一、字......
  • Vuex的四个轻骑兵:mapState、mapGetter、mapMutation、mapAction(转载)
    vuex进阶一、state1.1引入vuex以后,我们需要在state中定义变量,类似于vue中的data,通过state来存放状态importVuefrom'vue'importVuexfrom'vuex'Vue.use(Vuex)exportdefaultnewVuex.Store({state:{//存放状态nickname:'Simba',age:20,gender:'男&......
  • 到底什么是@RestController
    @RestController是Spring框架的一个注解,通常用于标识一个类是RESTful服务的Controller。@RestController经常用来处理HTTP请求,是SpringMVC中用于构建RESTfulWeb服务的注解,是@Controller注解的变体通过@RestController注解,SpringMVC可以识别出这个类是一个控制器这个类里面的方......
  • idea忽略.class、.idea文件和target目录,以及爆红jar包无法加载修复
    一、添加忽略文件的地方首先打开设置,然后找到下面这个位置然后添加对应类型(千万别添加.class,否则和我一样踩坑,方法二可恢复)。整个项目会重新加载二、修复jar包爆红然后整个项目全部爆红,是因为你忽略了.class,你删除刚才新增的忽略.class,然后修改下面这个地方。加......
  • 如何使用 python (使用服务帐户)在应用程序脚本 Web 应用程序上触发 doGet()?
    我想从返回json的应用程序脚本Web应用程序触发doGet(e)事件。我们的网络应用程序无法在我们的组织域之外访问,因此需要服务帐户。我执行了下面的代码,但“发生错误:401客户端错误”fromgoogle.oauth2importservice_accountfromgoogle.auth.transport.requestsimpor......
  • Debian系包管理工具dpkg,apt-get,apt的区别
    解密Linux包管理:apt和apt-get的区别-系统极客(sysgeek.cn)dpkg:幕后英雄dpkg是Debian包管理系统的核心,是一个底层工具,用于直接操作.deb文件。你可以把它想象成一个搬运工,负责把软件包里的「内容」搬到电脑里。但是,它不处理依赖关系,这项工作交由apt或apt-get来完成。ap......
  • 写一个显示图像的widget,替换VisionMaster的组件
            前面在VisionMaster二次开发时使用了QAxWidget嵌入了一个控件,加载过程有点慢,鼠标操作习惯也不合适,还不如自己写一个。以前用QGraphics框架实现过,要写好几个文件,有点麻烦,现在用一个QWidget自己绘制下。1.鼠标在图像上移动实时显示图像位置和像素值2.按住鼠标......