使用ajax连接登录页面,登录页面接口没有问题测试过,但是前端页面输入的密码用ajax发送请求后,idea中值为空收不到

img

第一部分账号和密码成功,是运行的apipost接口,请求成功,下面的是ajax返回的值,为空
有人知道是为什么吗,怎么解决这个问题

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/651676
  • 这篇博客你也可以参考下:表单和ajax中的post请求&&后台获取数据方法(深度好文)
  • 除此之外, 这篇博客: Ajax发送Post请求,后端控制器使用重定向页面没有自动跳转中的 原因解析 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • Ajax实际上是通过XMLHttpRequest来向服务器发送异步请求的,从服务器获取数据,然后使用JS来更新页面,这也就是常说的局部刷新实现方式,所以Ajax请求之后,服务器返回的都是纯文本流,客户端的浏览器在获取Ajax异步结果时,不是直接显示在页面上,而是要通过JS来进行处理,JS处理完以后才能显示在页面上。此处对应的JS处理就是在Ajax回调函数中执行window.location.href=path
    在这里插入图片描述
    在请求头信息中有这么一条:X-Requested-With: XMLHttpRequest,这就表明这是一个AJAX请求,我们可以通过这一信息来辨别请求是来自一般的HTTP请求还是Ajax请求。

  • 您还可以看一下 王进老师的Ajax异步请求实战案例讲解课程中的 Ajax案例演示,使用Ajax中使用POST请求实现学生信息的查询小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    答案: 根据参考资料中提供的步骤和代码,通过浏览器控制台查看网络请求获取评论数据。具体操作流程如下: 1. 在携程景点评论页面按‘F12’进入元素检测,点击‘Network’查看网络资源。 2. 清空所有数据,再点击第二页,加载数据,等数据不再变化时,停止监听,此时可以看到请求评论第二页的所有数据。 3. 在Network中筛选出类型为XHR的请求,找到评论请求数据。请求地址为Request URL。 4. 查看Request Payload,确定每个参数的含义并通过对比法,找出不同景点的区别,即POI ID。 5. 在代码中,根据分析得到的"totalCount"路径,算出总评论数的值并计算出总页数(每页10条数据),并保证页数不超过200。 6. 在代码中,使用Ajax进行连接的操作,请求每一页的评论数据,通过Python从请求结果中获取具体信息,处理并存储数据。 7. 可以在浏览器控制台中查看Ajax返回的具体信息(在Network选项卡中)。

    具体代码如下(其中的请求地址和参数需根据具体情况进行修改):

    import requests
    import json
    
    # 请求评论数据的url
    url = 'https://m.ctrip.com/restapi/soa2/13444/json/getCommentCollapseList'
    
    # 请求头
    header = {
        'Host': 'm.ctrip.com',
        'Accept': 'application/json, text/plain, */*',
        'X-Requested-With': 'XMLHttpRequest',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
        'Content-Type': 'application/json;charset=UTF-8',
        'Referer': 'https://m.ctrip.com/webapp/you/gspoi/sight/97470.html?isHideHeader=true&isHideNavBar=YES&jumpToComment=YES',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
        'Connection': 'keep-alive',
        'Origin': 'https://m.ctrip.com',
        'Content-Length': '269',
        'Cookie': '***********'
    }
    
    # 请求数据
    payload = {
        "arg": {
            "channelType": 2,
            "collapseType": 0,
            "commentTagId": 0,
            "pageIndex": 1,
            "pageSize": 10,
            "poiId": 97470, # 需要根据具体情况进行修改
            "sourceType": 1,
            "sortType": 3,
            "starType": 0
        },
        "head": {
            "cid": "09031027214030973865",
            "ctok": "",
            "cver": "1.0",
            "lang": "01",
            "sid": "8888",
            "syscode": "09",
            "auth": "",
            "xsid": "",
            "extension": []
        }
    }
    
    
    # 获取评论数据的函数
    def fetch_comments(page_num):
        payload['arg']['pageIndex'] = page_num
        try:
            response = requests.post(url, headers=header, json=payload)
            if response.status_code == 200:
                return json.loads(response.text)
            else:
                return None
        except requests.exceptions.RequestException as e:
            print('Error:', e)
            return None
    
    
    # 根据分析得到的"totalCount"路径,计算出总评论数的值并计算出总页数(每页10条数据),并保证页数不超过200。
    html = fetch_comments(1)
    total_page = int(html['result']['totalCount']) / 10
    if total_page > 200:
        total_page = 200
    
    # 遍历查询评论
    print("总页数:", total_page, "开始爬取")
    comments = []
    for i in range(1, int(total_page) + 1):
        print("正在爬取第", i, "页")
        result = fetch_comments(i)
        if result is not None and 'data' in result:
            comments.extend(result['data'])
    
    # 处理数据并存储
    for comment in comments:
        print(comment['content'])