我正在尝试在前端使用Ajax请求:
$.ajax({
type: "GET",
url: "localhost:3000/send",
beforeSend:function(){
$(".loading_msg").hide();
},
complete:function(){
$(".loading_msg").show();
}
});
但是当我加载包含脚本的页面时,出现以下错误:
从源访问“ localhost:3000 / send”处的XMLHttpRequest “ http://localhost:3000”已被CORS政策禁止:跨来源 仅协议方案支持请求:http,data,chrome, chrome-extension,https。
和
unchecked runtime.lastError:消息端口在响应之前关闭 已收到。
我尝试了很多事情,例如添加中间件来表达:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
没有什么不同。
我还尝试安装cors npm软件包并做到了
const cors=require('cors')
app.use(cors())
app.options('*', cors());
这也没有区别。
我还尝试通过添加https://
来更改ajax URL。 url: "https://localhost:3000/send",
虽然这确实消除了CORS错误,但它给了我另一个错误:
获取https://localhost:3000/send净:: ERR_SSL_PROTOCOL_ERROR
在使用本地主机时如何从Nodejs Express服务器发送Ajax请求?
答案 0 :(得分:2)
您的cors错误消息明确指出,发出请求时您需要使用http
$.ajax({
type: "GET",
url: "http://localhost:3000/send",
beforeSend:function(){
$(".loading_msg").hide();
},
complete:function(){
$(".loading_msg").show();
}
});
答案 1 :(得分:0)