weixin_43789608 2019-07-26 13:09 采纳率: 0%
浏览 1218
已采纳

ajax无法发送请求,后台也未接收到请求

试了很多次,表单提交后,到alert(data)一句(包括这一句)都执行正常,但之后的ajax语句就无法发送请求,ajax语句里面的几个alert也没有运行,最后的alert('1')也没有运行(异步请求正常运行的话应该是会执行的吧)
以下是前端代码,本来代码是要复杂些的,但我调试的时候把代码简化了,基本确定是ajax语句的问题了。

$(function () {           
            'use strict';
            $('#login_form').submit(function (event) {
                event.stopPropagation();
                event.preventDefault();
                var nickname = $('#login_form').find('#login_nickname').val();
                var pwd = $('#login_form').find('#login_password').val();
                if (!nickname || !pwd) {
                    $('#login_text').show();
                }
                var raw_data = {
                    title: 'login',
                    nickname: nickname,
                    password: pwd
                }
                var data = JSON.stringify(raw_data);
                alert(data);
                $.ajax('/login', {
                    dataType: 'json'
                }).done(function (data) {
                    alert('成功');
                }).fail(function (xhr, status) {
                    alert('失败');
                }).always(function () {
                    alert('请求完成: 无论成功或失败都会调用');
                });
                alert('1');
            });
        });

后端代码如下,用的是flask。按理来说即便url不对,后台也应该有请求记录的,然而后台并没有显示该记录

@app.route('/login',methods=['POST',])
def login():
    if g.user is not None and g.user.is_authenticated:
        flash('You have already logged in!')
        return redirect(url_for('home'))
    raw_data=request.get_data()
    print(raw_data)
    data=json.loads(raw_data)
    print(data[pwd],data[nickname])
    resp=dict(success = True,text ='limbohotmore!')
    return json.dumps(resp)

后台记录如下,无论提交几次表单,都只有第一次获取主页面的请求记录

 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 289-281-425
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [26/Jul/2019 12:52:27] "GET / HTTP/1.1" 200 -
  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2019-07-26 13:46
    关注

    首先,你在 event.stopPropagation(); 之前打印一句 ,看看是否触发了提交方法。
    其次,看看浏览器的控制台是不是有 js 报错。
    前端调试的方法:F12 打开浏览器的开发者模式,debugger; 添加 js 断点;console.log("xxx");向浏览器控制台输出日志信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵