找回密码
 立即注册
搜索
查看: 3041|回复: 10

[技术探讨] node-red http request是否支持跨域访问?

[复制链接]

7

主题

100

回帖

964

积分

高级会员

积分
964
金钱
857
HASS币
0
发表于 2023-3-20 20:10:52 | 显示全部楼层 |阅读模式
本帖最后由 kffnqtd 于 2023-3-20 20:14 编辑

家里的燃气也是物联表,交费查询都可以在微信小程序下查询。但是这个燃气欠费停气却没有任何通知,网页上也能查到月扣费记录,没有而且表端的费用。
所以我抓包了小程序的,但是却遇到了下面这样的问题。
截屏2023-03-20 19.42.23.png
第一个请求头的URL是https://wx.hzgas.com/gasWechat/gasAccountController.do?getCustBalance&account=***&openId=o7autt-***
页面是这样的显示的
IMG_5659.jpeg
第二个请求头的URL是https://wx.hzgas.com/gasWechat/gasRechargeController.do?wechatAccountBill&account=***
页面是这样的显示的

IMG_5660.jpeg
我需要的是这个表端余额,如果低于十块可以通过HA给我发通知,这样就不能每次都是停气了才去充值,而且充值后还要到表端操作才能复开燃气
上面这两个URL看域名是一样的,是不是第二个会到微信域名去查询,所以导致跨域错误?我也是个node red小白,没有配置过,都是抄大佬的作业。有没有大佬支招解惑一下?
回复

使用道具 举报

7

主题

100

回帖

964

积分

高级会员

积分
964
金钱
857
HASS币
0
 楼主| 发表于 2023-3-20 20:20:08 | 显示全部楼层
silversucks 发表于 2023-3-20 20:16
http request没有跨域限制

那我这第二个请求错误是什么错误,是证书不对吗?有没有办法解决?
回复

使用道具 举报

7

主题

100

回帖

964

积分

高级会员

积分
964
金钱
857
HASS币
0
 楼主| 发表于 2023-3-20 23:29:21 | 显示全部楼层
arthurfsy 发表于 2023-3-20 22:07
在“请求头”的function里面加上下面的试试?

试了一下,返回404
我试着第二个链接加上第一个链接后面的openid,在chrome里自定义UA去打开,可以打开页面。 截屏2023-03-20 23.14.33.png
但是在node red里面一样的配置,却只打开了head字段,body没有出来,不知道问题出在哪里……
截屏2023-03-20 23.14.01.png
回复

使用道具 举报

7

主题

100

回帖

964

积分

高级会员

积分
964
金钱
857
HASS币
0
 楼主| 发表于 2023-3-21 11:08:19 | 显示全部楼层
cjnt007 发表于 2023-3-21 05:53
在debug栏里查看返回的信息,head显示出来body部分未显示不能说明真实情况。你可以在后面放一个function节 ...

length的方法我也不会写,搜索出来的一段放上去出来就是下面图片这样的,2426?是字节吗?
截屏2023-03-21 11.01.15.png
var new_msg = { payload: msg.payload.length }
msg.payload = new_msg
return msg;
代码是上面的,这样写对吗?
indexOf的代码像下面这样写对吗?
if (msg.payload.indexOf("表端余额") > -1) {
    var topic="YES";
    msg.topic=topic;
}
return msg;
输出的topic""空值,是不是就表示没有?
回复

使用道具 举报

7

主题

100

回帖

964

积分

高级会员

积分
964
金钱
857
HASS币
0
 楼主| 发表于 2023-3-21 11:42:04 | 显示全部楼层
cjnt007 发表于 2023-3-21 05:53
在debug栏里查看返回的信息,head显示出来body部分未显示不能说明真实情况。你可以在后面放一个function节 ...

从Chrome上看,应该是只请求到了一个文件,其他的没有返回,这个http request跟网页访问机制不一样的吗?
截屏2023-03-21 11.38.35.png
回复

使用道具 举报

7

主题

100

回帖

964

积分

高级会员

积分
964
金钱
857
HASS币
0
 楼主| 发表于 2023-3-21 12:36:28 | 显示全部楼层
cjnt007 发表于 2023-3-21 05:53
在debug栏里查看返回的信息,head显示出来body部分未显示不能说明真实情况。你可以在后面放一个function节 ...

真的是显示不全而已我把Debug输出到控制台,在node red里的日志就看到了剩下的内容了,现在就是怎么把想要的内容提取出来了
回复

使用道具 举报

7

主题

100

回帖

964

积分

高级会员

积分
964
金钱
857
HASS币
0
 楼主| 发表于 2023-3-21 17:28:42 | 显示全部楼层
cjnt007 发表于 2023-3-21 13:17
在chrome里打开页面,然后查看网页源代码,查找表端余额所在节点信息,根据html代码特征设定一个唯一字符 ...

感谢大佬的指导,不过问题来了,查找的字符竟然不是唯一的,要换行查找又整懵了。
const html = msg.payload;
const start = html.indexOf('js2-money-text');
const end = html.indexOf('\n', start);
const token = html.substring(start + 16, end - 5);
msg.access_token = token;
msg.payload = null;
return msg;


截屏2023-03-21 17.16.01.png
出来的结果是第一个账户余额
截屏2023-03-21 17.19.31.png
想请教一下大佬,还有什么办法可以精确查打到?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-7-2 14:28 , Processed in 0.480171 second(s), 12 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表