老宋的地盘

 找回密码
 我要加入
搜索
老宋 首页 文章 技术 查看内容

使用ajax请求http接口,返回的是https

2024-5-22 02:52| 发布者: herosrx| 查看: 292| 评论: 0

摘要: $.ajax({ url: "http://192.168.5.187:9999/users", type: 'GET', // 请求方法,默认为 'GET' dataType: "json", // 预期服务器返回的数据类型,可以是 "json"、"xml"、"html" 等 success: function (data) { // 请 ...
$.ajax({
url: "http://192.168.5.187:9999/users",
type: 'GET', // 请求方法,默认为 'GET'
dataType: "json", // 预期服务器返回的数据类型,可以是 "json"、"xml"、"html" 等
success: function (data) {
// 请求成功时的回调函数,data 是服务器返回的数据
console.log(data);
console.log('请求开始。。。');
},
error: function (jqXHR, textStatus, errorThrown) {
// 请求失败时的回调函数
console.error("请求失败:", textStatus, errorThrown);
},
});

使用ajax调用http接口,报了两个错错误:
第一个是:

CORS error

解决:原因是接口端不支持跨域,我用的是flask,因此设置了:

CORS(app, resources=r'/*')   或者  
CORS(app)  或者

CORS(app, resources={r"/api/*": {"origins": "*"}})


客户端在请求,跨域问题就解决了,据说浏览器插件也可以,自己没有尝试


第二个问题:如上代码,ajax请求的明明是http   经过浏览器却变成了https,查课很久,竟然是个很基础的问题:

接口一直报ssl错误:

一定是有某个地方将请求强制变成了https,检查后竟然是这里,

将这句注释掉,请求变正常了,一切OK,接口请求成功。

如果用ajax 请求的链接是   http://localhost  或者  http://127.0.0.1   则不会变成https。因为,这两种不走网卡,而  ip  和  域名会走网卡,所以会变成https。


注释:配置正确的自签名证书也能解决这个问题。

关联内容:https://www.24jq.com/article-1171-1.html

URL请求相关拓展:https://www.24jq.com/article-1170-1.html


路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

歌名 - 歌手
0:00

    QQ|手机版|小黑屋|工具箱|老宋 ( 备案中... )

    GMT+8, 2024-11-21 18:21 , Processed in 0.065118 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    返回顶部