Javascript 构造http请求

构造HTTP请求有多种方式,此种为使用javascript 构造http请求的方法

构造HTTP请求_vscode post 请求-CSDN博客

web/static/js/user/login.js

;
var user_login_ops = {init:function(){this.eventBind();},eventBind:function(){$(".login_wrap .do-login").click( function(){var btn_target = $(this);if( btn_target.hasClass("disabled") ){common_ops.alert("正在处理!!请不要重复提交~~");return;}var login_name = $(".login_wrap input[name=login_name]").val();var login_pwd = $(".login_wrap input[name=login_pwd]").val();if( login_name == undefined || login_name.length < 1){common_ops.alert( "请输入正确的登录用户名~~" );return;}if( login_pwd == undefined || login_pwd.length < 1){common_ops.alert( "请输入正确的密码~~" );return;}btn_target.addClass("disabled");$.ajax({url:common_ops.buildUrl("/user/login"),type:'POST',data:{ 'login_name':login_name,'login_pwd':login_pwd },dataType:'json',success:function(res){btn_target.removeClass("disabled");var callback = null;if( res.code == 200 ){callback = function(){window.location.href = common_ops.buildUrl("/index");}}common_ops.alert( res.msg,callback );}});} );}
};$(document).ready( function(){user_login_ops.init();
} );
1 为什么在上段代码中if判断条件后面都有个reutrn;

在JavaScript(以及许多其他编程语言)中,return语句用于从函数中返回一个值,并且立即终止函数的执行。在上段代码中,return语句被用在if判断条件的后面,目的是为了在满足特定条件时提前退出当前的函数或事件处理器。

具体到你提供的登录功能的代码片段中,return语句被用来处理以下情况:

  1. 防止重复提交

if( btn_target.hasClass("disabled") ){  common_ops.alert("正在处理!!请不要重复提交~~");  return; // 如果按钮已被禁用,显示提示信息并退出函数  
}

这里,如果登录按钮(btn_target)已经有disabled类(意味着它可能已经被点击过,并且正在处理登录请求),则显示一个提示信息给用户,并通过return语句退出当前的点击事件处理器,从而防止重复提交。

   2. 验证输入

if( login_name == undefined || login_name.length < 1){  common_ops.alert( "请输入正确的登录用户名~~" );  return; // 如果用户名无效,显示提示信息并退出函数  
}  
if( login_pwd == undefined || login_pwd.length < 1){  common_ops.alert( "请输入正确的密码~~" );  return; // 如果密码无效,显示提示信息并退出函数  
}
  • 在这两个if语句中,代码检查用户名(login_name)和密码(login_pwd)是否有效。如果任何一个无效(即未定义或长度小于1),则显示一个相应的提示信息,并通过return语句退出函数,从而阻止后续的登录请求。

使用return语句在这些情况下是一种很好的实践,因为它可以防止代码在不满足前提条件的情况下继续执行,从而避免潜在的错误或不必要的操作。这也使得代码更加清晰和易于理解,因为读者可以立即看到在满足特定条件时函数将如何退出。

2、 代码中为什么都是input[name= ] 而不是input[password = ]

在上段代码中,使用了jQuery选择器来获取登录表单中的用户名和密码。选择器的写法是根据HTML元素的属性来确定的。

var login_name = $(".login_wrap input[name=login_name]").val();  
var login_pwd = $(".login_wrap input[name=login_pwd]").val();

这里,input[name=login_name] 和 input[name=login_pwd] 分别选择了name属性为login_namelogin_pwdinput元素。这种写法是基于HTML表单元素的常见实践,其中name属性用于在表单提交时标识每个输入字段。

为什么不用 input[password=] 呢?

  1. HTML标准password 并不是input元素的一个可用于选择器的属性值,而是一个type属性的值。正确的选择器应该基于type属性,如果我们要选择密码输入框,应该使用 input[type=password]

  2. 实践:在表单中,我们通常通过name属性来标识和引用输入字段,因为name属性在表单提交时会被发送到服务器,并且它允许我们在JavaScript中更具体地引用到某个字段,尤其是在有多个相同type的输入字段时。

  3. 安全性:使用type=password确实可以选择到密码输入框,但在JavaScript中直接引用密码字段(尤其是在选择器或变量命名中)可能会暴露代码的目的,从而潜在地降低安全性(尽管这不是一个主要的安全漏洞,但最好避免在代码中直接提及敏感信息)。

因此,正确的做法是使用input[type=password]来选择密码输入框,但在这个特定的例子中,作者可能已经有了另一个方式来标识密码输入框(比如通过name属性),或者他们只是遵循了使用name属性来选择表单字段的惯例。如果密码输入框的name属性是login_pwd(或类似的),那么使用input[name=login_pwd]是完全正确的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博科测试IPO上市丨为行业提供智能测试综合解决方案

近年来&#xff0c;汽车制造、大型基础设施建设以及新能源开发等领域&#xff0c;对高精度、高效率的测试解决方案需求迫切。为推动行业发展&#xff0c;博科测试通过多年的技术积累以及自主创新&#xff0c;围绕伺服液压测试和汽车测试试验领域&#xff0c;积累了多项核心技术…

Java枚举封装状态值与类型转换

前言 在许多应用中&#xff0c;我们需要处理具有固定数量的状态或选项的数据。例如&#xff0c;在库存管理系统中&#xff0c;产品可以有不同的状态&#xff0c;如“入库”、“出库”等。通过使用 Java 的枚举&#xff08;enum&#xff09;&#xff0c;我们可以有效地表示这些…

Golang | Leetcode Golang题解之第486题预测赢家

题目&#xff1a; 题解&#xff1a; func PredictTheWinner(nums []int) bool {return total(nums, 0, len(nums) - 1, 1) > 0 }func total(nums []int, start, end int, turn int) int {if start end {return nums[start] * turn}scoreStart : nums[start] * turn total…

AI 视频工具合集

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏AI_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; 目录 前言: 正文: ​ 前言: AI 视频&#xff0c;科技与艺术的精彩融合。它借助先进的人工智能技术&#xff0c;为影像创…

SLAM评估工具evo学习

参考链接 官方github&#xff1a;https://github.com/MichaelGrupp/evo 一、 指令分析 1.1 tum数据集&#xff0c;evo_ape指令 evo_ape {kitti,tum,euroc,bag} -h evo_ape tum -h(1) 终端输入&#xff1a; evo_ape tum -h (2) 终端打印&#xff1a; usage: evo_ape tum …

Android Framework AMS(07)service组件启动分析-1(APP到AMS流程解读)

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要解读应用层service组件启动的2种方式startService和bindService&#xff0c;以及从APP层到AMS调用之间的打通。关注思维导图中左侧部分即…

ISO 21434标准下汽车软件开发的网络安全核心要求

ISO 21434《道路车辆——汽车网络安全工程》是一个针对汽车网络安全的国际标准&#xff0c;它对汽车软件开发提出了明确的要求&#xff0c;以确保车辆在整个生命周期内的网络安全。 以下是ISO 21434网络安全标准对汽车软件开发的主要共同要求&#xff1a; 1. 安全意识与设计 …

microsoft edge浏览器卡死问题

win11经常遇到microsoft edge浏览器卡死的情况&#xff0c;有时候是一会没用浏览器就全部卡死&#xff0c;有时候是锁屏或者电脑休眠浏览器就不能用&#xff0c;找了很多的办法都没好使&#xff0c;用以下方法好使了&#xff1a; edge浏览器中打开 edge://settings/system 把 …

Cornerstone3D Tools对影像进行交互(中篇)-注释类工具使用

&#x1f3c4;‍♀️ 前言 这里是关于Cornerstone3D Tools对影像进行交互&#xff08;中篇 &#xff09;- 注释类工具的使用介绍。在 Cornerstone3D Tools对影像进行交互(上篇)-基础交互工具及同步器 一文中主要介绍了一下基础交互类工具的使用&#xff0c;感兴趣的小伙伴可以…

【优先算法】--双指针1

“一念既出&#xff0c;万山无阻。”加油陌生人&#xff01; 目录 1.双指针--移动零 2.双指针-复写零 ok&#xff0c;首先在学习之前&#xff0c;为了方便大家后面的学习&#xff0c;我们这里需要补充一个知识点&#xff0c;我这里所谓的指针&#xff0c;不是之前学习的带有…

Linux系统移植

目录 一、简介 嵌入式Linux系统移植组成部分: 二、搭建交叉开发环境 选择交叉开发环境的原因: 1.Ubuntu和Windows下的文件互传 2.Ubuntu 下 NFS和 SSH服务开启 3.Ubuntu 交叉编译工具链安装 3.1修改环境变量 3.2安装相关库 三、bootloader的选择和移植 编译U-boot 总…

中大型企业网络架构和建设方案

1. 需求分析 &#xff08;1&#xff09;用户需求&#xff1a; 员工访问&#xff1a;支持内部员工通过有线和无线网络访问企业资源。 远程访问&#xff1a;支持远程办公员工通过VPN安全访问企业内部资源。 合作伙伴和客户访问&#xff1a;允许外部合作伙伴和客户通过受控渠道访问…

Linux 外设驱动 应用 2 KEY 按键实验

2 按键 2.1 按键介绍 按键是指轻触式按键开关&#xff0c;也称之为轻触开关。按键开关是一种电子开关&#xff0c;属于电子元器件类&#xff0c;最早出现在日本&#xff0c;称之为&#xff1a;敏感型开关&#xff0c;使用时以满足操作力的条件向开关操作方向施压开关功能闭合…

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 文章目录 东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南一 TongWeb V7二 Spring Boot JAR 配置文件三 修改 maven 依赖四 docker compose 启动项目五 查看 docker 信息 本文详细讲解了如何在 Docker 环境中将东方…

【笔记】Day2.5.1查询运费模板列表(未完

&#xff08;一&#xff09;代码编写 1.阅读需求&#xff0c;确保理解其中的每一个要素&#xff1a; 获取全部运费模板&#xff1a;这意味着我需要从数据库中查询所有运费模板数据。按创建时间倒序排序&#xff1a;这意味着查询结果需要根据模板的创建时间进行排序&#xff0…

嵌入式学习-IO进程-Day02

嵌入式学习-IO进程-Day02 标准IO函数接口 fread&#xff0c;fwrite 文件指针偏移函数 文件IO 概念 文件IO的特点 文件描述符 文件IO的函数接口 open 打开文件 close 关闭文件 read 读函数 write 写函数 lseek 移动文件指针 标准IO和文件IO对比 目录操作函数 opendir 打开目录 c…

套接字Socket

套接字 在网络中通过 IP 地址来表示和区别不同的主机&#xff0c;通过端口号来标识和区分一台主机中的不同应用进程&#xff0c;端口号拼接到 IP 地址即构成套接字 Socket。在网络中采用发送方和接收方的套接字来识别端点。套接字&#xff0c;实际上是一个通信端点&#xff0c…

C语言初阶小练习2(三子棋小游戏的实现代码)

这是C语言小游戏三子棋的代码实现 test.c文件是用来测试的部分 game.h文件是用来声明我们说写出的函数 game.c文件是用来编写我们的功能实现函数部分 1.test.c #define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void menu() {printf("***************…

使用 cmake 在 x86 系统中为 arm 系统交叉编译程序

原理&#xff1a; 在 x86 系统里使用交叉编译工具链&#xff08;arm 版 gcc/g&#xff09;编译程序&#xff0c;然后放在 arm 系统里运行。 arm 版本 使用 lscpu 查看 cpu 架构 版本说明armv732 bitarmv8/arrch6464 bit 安装交叉编译工具链 # 针对 armv7 sudo apt install…

库卡ForceTorqueControl(一)

1. 功能说明 ForceTorqueControl 是一个可后载入的备选软件包&#xff0c;具有下列功能&#xff1a; 执行取决于测得的过程力和力矩的运动 遵守过程力和力矩&#xff0c;不取决于工件的位置和尺寸 遵守加工工件期间复杂的过程力变化 沿着根据测得的过程力编程的轨迹调整速度 通…