http请求400能接收到response参数吗

新手上路,请多包涵

请问下,http请求返回的httpCode必须是200才是请求成功吧,我现在有个第三方接口,后端说改不了,请求返回400,叫我判断,能行?
备注:是个输入账密登录的需求,输入正确的账密,是能请求到200,输入错误的账密,就返回400,这我怎么判断登录失败?### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 6k
2 个回答

只要不是链接断开,状态码跟响应内容都是可读的。

而且也不是说必须 200 才算成功,正常来说 [200, 300) 区间内的都可以视为成功。

具体如何判断取决于你使用什么请求框架,但在浏览器环境下任何(HTTP)请求框架底层都是使用 XMLHttpRequest 进行请求,针对这个:

var xhr= new XMLHttpRequest(),
    method = "GET",
    url = "https://developer.mozilla.org/";

xhr.open(method, url, true);
xhr.onreadystatechange = function () {
  if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 400) {
    // 输出后端信息
    console.log(xhr.responseText)
  }
}
xhr.send();
改自 onreadystatechange

服务器端返回 400 是bad Request 是请求的问题,请求有可能是参数不对(注:参数名可能和后端的名称不一致),那如果是用框架封装的ajax请求,也可以用 res.statusCode == 400 来做判断,然后做下一步的逻辑处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题