为何总是No 'Access-Control-Allow-Origin'

发布于 2022-09-06 05:34:07 字数 843 浏览 20 评论 0

各位大湿们问个略low的问题,我在本地启个服务,代码如下:

var http = require("http");
http.createServer(function (req , res){
    res.writeHead(200,{'Content-Type':'text/plain'})
    res.write("we are is content");
    res.end();
}).listen(8899);

然后新建和html 里面去请求这个服务 代码如下:

    var xml = new XMLHttpRequest();
    var but = document.getElementById("button");
    but.onclick=function (){
        xml.open('GET','http://localhost:8899',true);
        xml.send();
    }

浏览器一直报报错,似乎跨域问题,网上也百度了一些解决办法,什么设置请求头啊、什么设置dataType=jsonp啊什么的都试了下,虽然写了一年多web,但http对我来讲就像上学时的英语一样,有种恐惧感,永远搞不懂......!报的最多错误就是:

clipboard.png
感觉这玩意比webpack构建个项目难一百倍。。。
像这种情况到底要怎么搞才能发送成功。。。。?要原生的ajax;

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

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

发布评论

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

评论(5

触ぅ动初心 2022-09-13 05:34:07
    
    var http = require("http");
http.createServer(function (req , res){
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.writeHead(200,{'Content-Type':'text/plain'})
    res.write("we are is content");
    res.end();
}).listen(8899);
顾挽 2022-09-13 05:34:07

推荐看看阮一峰大神两篇博文,浏览器同源政策及其规避方法

CORS通信

希望对您有所帮助

如日中天 2022-09-13 05:34:07

首先这个问题是由于浏览器的同源策略导致的,所以建议先看一下同源策略是什么。
其次由于同源策略的限制就会产生跨域的问题,而web端对于跨域有很多种解决方案,比如你说的jsonp和楼上回复的cors的方式,建议系统的看一下这些,大概就有概念了。

惟欲睡 2022-09-13 05:34:07

原因:跨域
两个解决办法:
前台解决或者后台解决
第一种就像一楼所说cors,服务器端设置 header("Access-Control-Allow-Origin", "");后面的“”表示允许任何域访问,安全起见,你也可以把后面的“*”换为请求的URL
第二种就是客户端解决啦,JSONP(还不会的可以私信我哦)

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