怎么向https://google.com 发送⼀个 POST 请求?

发布于 2022-09-12 23:41:01 字数 1180 浏览 67 评论 0

本人Ajax小白,通过学习后写出了以下代码:

const btn = document.getElementsByTagName("button")[0];
btn.onclick = function() {
  const xhr = new XMLHttpRequest();
  xhr.open('POST','https://google.com');
  xhr.send('hello google');
  xhr.onreadystatechange = function() {
    if(xhr.readyState === 4){
      if(xhr.status >= 200 && xhr.status < 300){
        console.log('OK');
      }
    }
  }
}

代码大致意思为:点击页面上的按钮,就可以发送POST请求,附带'hello google'的请求体信息
但是,报错Access to XMLHttpRequest at 'https://google.com/' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

它的意思是在跨域上出了问题,之前也在服务端express配置过CORS,但是这次是向https://google.com/发送的POST请求,而不是向自己启动的服务端发送请求,我觉得应该没办法设置:response.setHeader('Access-Control-Allow-Origin', '*');
那么应该怎么做呢,谢谢大家

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

兔姬 2022-09-19 23:41:01

看你的描述,你应该是已经知道跨域的原因了
请求和被请求方不在一个域中

所以你要做到的是保持两者都在一个域中,这时可以学习一下反向代理

我们以nginx为例,我们使用宝塔来操作

1、创建域名,例如 express.test
2、配置反向代理

image.png

3、配置运行跨域

在当前的express.timage.png

勿忘初心 2022-09-19 23:41:01

没办法。当然一般这种可以考虑在自己的服务器上开个代理,请求自己服务器 'http://127.0.0.1:5500/proxy/https://google.com/' 然后服务器去请求 https://google.com/

心欲静而疯不止 2022-09-19 23:41:01

推荐2种方式:
第一种:
禁用谷歌本地安全策略

第二种:
万能的nginx

素染倾城色 2022-09-19 23:41:01

你可以看看你的web.xml里面的配置问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文