怎么向https://google.com 发送⼀个 POST 请求?
本人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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
看你的描述,你应该是已经知道跨域的原因了
请求和被请求方不在一个域中
所以你要做到的是保持两者都在一个域中,这时可以学习一下反向代理
我们以nginx为例,我们使用宝塔来操作
1、创建域名,例如 express.test
2、配置反向代理
3、配置运行跨域
在当前的express.t
没办法。当然一般这种可以考虑在自己的服务器上开个代理,请求自己服务器
'http://127.0.0.1:5500/proxy/https://google.com/'
然后服务器去请求https://google.com/
推荐2种方式:
第一种:
禁用谷歌本地安全策略
第二种:
万能的
nginx
你可以看看你的web.xml里面的配置问题