在前端通过ajax发送请求和后端使用HttpClient发送请求看似没有什么区别,因为两者发送的都是HTTP请求或者HTTPS请求,而使用HttpClient发送的请求本身也是在模拟浏览器的行为,但有时通过前端发送ajax请求第三方平台的接口可行,但是通过HttpClient的方式却不行,为什么呢?

   
原因在于:通过ajax发送的请求是前端发送的请求,其请求的ip是浏览器所在机器的局域网分配的;而使用HttpClient发送的请求是后端请求,其请求的ip是提供服务的服务器的ip。
一般而言,第三方平台的服务器都会有白名单的访问限制,在开发的时候添加的白名单一般是公司局域网的白名单,也就是说只有通过公司的局域网才能访问第三方的服务接口,所以在开发环境下通过ajax或者HttpClient的方式都是可行的,因为开发环境下的服务器一般连接的是公司的内网;但是到了生产环境使用HttpClient的方式就不行了,因为大部分公司的生产服务器都是租赁的,其ip并不是通过公司的局域网分配的,而是由服务器提供商分配的,这时第三方平台的白名单就会限制生产服务器的访问


    解决方案:

        1、将HttpClient改为ajax的方式请求

        2、将生产的ip和端口加入白名单

        

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信