前端调用第三方接口跨域问题

百度了好久,大部分的文章都前篇一律的说jsonp跨域,要不就是说配置CROS。看到那种文章出处应该都是一家,心好累。首先来说淘宝目前的接口是不支持jsonp请求的,配置CROS更是无稽之谈。
         首先想到的是反向代理(https://blog.csdn.net/weixin_42997826/article/details/90754275 具体见这篇文章),发现可以解决问题,布好服务。正在想今天晚上下班吃什么的时候,问题来了,服务器是https请求链接,而请求的第三方接口是http,换好https链接问题又来了,https用nginx代理报错404,哦no。看来今天晚上是下不了班了。
         原链跨域,jsonp不支持,CROS没法配置,nginx也挂了,就在这山穷水尽之时(问了下大佬),说让服务器做代理转发,然后再处理数据!!!深受启发,开个接口什么操作不用,把url传过去让服务器请求,再把返回值返回到页面。
         上代码
我这里是用的APIman做的模拟请求

package com.lmm.controller;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;import org.apache.catalina.servlet4preview.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.alibaba.fastjson.JSONObject;@RestController
@RequestMapping("/test")
public class TestController {@ResponseBody@RequestMapping(value = "/corss", method = RequestMethod.POST,consumes="application/json")public String sendGet(@RequestBody String dest_url, HttpServletRequest request) {//解析jsonJSONObject paramterJson = JSONObject.parseObject(dest_url);dest_url = paramterJson.getString("dest_url");String result = "";BufferedReader in = null;try {String urlNameString = dest_url;URL realUrl = new URL(urlNameString);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通用的请求属性connection.setReadTimeout(1000 * 3000);//设置超时时间(测试接口所以时间长一些)connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立实际的连接connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.out.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.err.println("发送GET请求出现异常:" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}
}


到这步请求就出来了。
是不是有种恍然大悟的感觉?一起加油吧。想把错误都贴出来,结果发现没截图保存,这样吧,跨域无非那么几个错误404 缺少报头 返回信息不准确(emmm严格来说是请求参数不对,也无伤大雅)。见都见烦了,少见一次也蛮好的。

前端调用第三方接口跨域问题(淘宝)相关推荐

  1. Nginx解决前端调用后端接口跨域问题

    Nginx解决前端调用后端接口跨域问题 参考文章: (1)Nginx解决前端调用后端接口跨域问题 (2)https://www.cnblogs.com/wangymd/p/11200746.html ...

  2. axios解决调用后端接口跨域问题

    vue-cli通过是本地代理的方式解决接口跨域问题的.但是在vue-cli的默认项目配置中这个代理是没有配置的,如果现在项目中使用,必须手动配置config/index.js文件 ... proxyT ...

  3. 前端_网页编程 跨域与JSONP- 淘宝搜索案例

    文章目录 前言 1. 要实现的UI效果 2. 实现步骤 2.1 获取用户输入的搜索关键词 2.2 建议搜索列表的函数封装 2.3 渲染建议列表的UI结构 2.3.1 定义搜索建议列表 2.3.2 定义 ...

  4. Nodejs之解决接口跨域问题

    Node系列文章 第一章:Node.js与内置模块(fs文件系统.path路径模块.http服务器模块) 第二章:Nodejs模块化(npm与包.开发自己的包.模块加载机制) 第三章:Nodejs之E ...

  5. 调用第三方接口大致流程

    下面以风控为例,业务是调用第三方接口获取支付宝报告 天机支付宝获取流程: 1 本质:中转站:前台把参数传给我,我接受参数后传给天机,天机在传给支付宝,最后获取数据,在这个过程中       我们和天机 ...

  6. iconfont配置nginx跨域问题、nginx反向代理接口跨域

    1.nginx配置解决iconfont跨域 浏览器跨域访问js.css.img等常规静态资源被同源策略许可,但iconfont字体文件(eot|otf|ttf|woff|svg)例外,此时可在ngin ...

  7. 【springboot】【若依(ruoyi)】@RestController 接口跨域请求

    前言 springboot 2.1.1.RELEASE 360极速浏览器 12.0.1476.0 (正式版本) (32 位) jquery 3.5.0 接口跨域请求有两者方式: jsonp CORS ...

  8. Http调用第三方接口的两种方式实例《超详细!!!》***

    Http调用第三方接口的两种方式<超详细!!!>* 最近在公司做一些调用第三方接口的工作,查阅了一部分的资料和向前辈以及朋友请教,完成了第三方接口的调用,其实主要是通过第三方提供的文档,完 ...

  9. PHP跨域处理 图片跨域 接口跨域 后端nginx的cors设置

    图片跨域报错: 解决方法: add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Re ...

最新文章

  1. python精确小数点_python执行精确的小数计算方法
  2. 注意:你智能机中的流氓APP
  3. C# 如何以参数的形式调用.exe程序
  4. swift为UIView添加extension扩展frame
  5. linux shell awk 中 printf 用法
  6. python画图-python画图的两种方法
  7. 枚举法 之Java实现凑硬币
  8. python学习笔记系列-方便自我学习
  9. 阿里妈妈品牌广告价值建模
  10. [jQuery] jQuery和Zepto的区别?各自的使用场景?
  11. 软考系统架构师笔记-综合知识重点(三)
  12. 超算简史:练飞天之技,登峰一战后,终有落地日 | 凌云时刻
  13. 软件工程 -- 开发模型
  14. 网站ICP备案与公安备案有什么区别---kalrry
  15. 微pe添加网络组件_对第三方PE加以定制的基本方法
  16. python字符映射表和字符替换
  17. 三角形中的正方形,三个问题
  18. 读《倚天屠龙记》小感
  19. VM Ware安装CentOS 7
  20. JAVA游戏土行孙_挖掘机的三种形态《非人学园》土行孙快速上手指南

热门文章

  1. ⭐李宏毅2020作业2---logistic regression
  2. 12款多媒体能力SDK与开发平台盘点
  3. HDLBITS笔记15:组合逻辑之7420芯片
  4. .NET Framework各个版本(1.0 - 2.0)
  5. vscode中配置LeetCode插件的教程(愉快刷题)
  6. python培训费用一般多少
  7. Python编程中的常见语句
  8. win10 桌面(Windows 资源管理器)卡死的根本解决办法
  9. Python并发编程之线程的玩法
  10. Excel基础知识一:Excel功能区、单元格快速定位与选择、Ctrl与Shift的配合使用