跨域POST访问第三方页面

本文讲述了在面临第三方网站仅支持POST请求的情况下,如何尝试通过表单提交数据来实现跨域访问。首先使用Postman测试接口,发现返回的HTML包含内部请求。然后尝试用JavaScript构造并提交表单,但由于接口需要application/json格式参数而失败。最后讨论了安全考虑,建议在后台进行关键数据交互,使用如OAuth 2.0等验证方式。
摘要由CSDN通过智能技术生成

遇到一个在新页面中打开第三方网站,但是只提供了POST请求的需求。

首先要吐槽第三方网站只提供POST请求,简直****!

1、接口测试

    首先用postman测试接口,返回html文档,第三方接口用POST请求,默认对方返回的是静态页面,将结果写入新窗口即可;代码测试发现该html文档是第三方系统内部访问的页面,有很多该系统内部的请求。

2、解决方案

    表单可以用POST请求向第三方网站提交数据,尝试js内部构造form表单,并提交

const url = '{address}/index_new.php/Login';
const tempForm = document.createElement('form');
tempForm.action = url;
tempForm.target = '_blank';
tempForm.method = 'post';
tempForm.style.display = 'none';

for (const x in argument) {
  const opt = document.createElement('input');
  opt.type = 'hidden';
  opt.name = x;
  opt.value = argument[x];
  tempForm.append(opt);
}
document.body.appendChild(tempForm);
tempForm.submit();
document.body.removeChild(tempForm);

成功打开新窗口,docum

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值