当前位置: 首页 > 知识库问答 >
问题:

服务器状态400阻止json向客户端发送响应

公孙琛
2023-03-14
User.findOne({ email: req.body.email }, (err, user) => {
        if (!user) return res.status(400).json({
            isAuth: false,
            message: "Auth failed, bad email",
            err
        })
User.findOne({ email: req.body.email }, (err, user) => {
        if (!user) return res.json({
            isAuth: false,
            message: "Auth failed, bad email",
            err
        })

下面是发出请求的客户端函数,console.log(request)部分由于状态400而被阻止:

    const submitForm = async (e) => {
        e.preventDefault()
        const request = await axios.post('/api/login', { email: email, password: password }).then(res => res.data)
        console.log(request)

        dispatch({
            type: "USER_LOGIN",
            payload: request
        })
    }

下面是一些来自控制台的Chrome材料:

xhr.js:166 POST http://localhost:3000/api/login 400 (Bad Request)
createError.js:17 Uncaught (in promise) Error: Request failed with status code 400
    at createError (createError.js:17)
    at settle (settle.js:19)
    at XMLHttpRequest.handleLoad (xhr.js:60)

共有1个答案

邓英卓
2023-03-14

存在axios错误/错误。

我已经使用fetchAPI重新编写了代码。似乎axios在处理4xx和5xx状态时有某种bug。

现在客户机部分如下所示:

const submitForm = async (e) => {
        e.preventDefault()

        const request = await fetch('/api/login', {
            method: 'POST',
            body: JSON.stringify({ email, password }),
            headers: {
                'Content-Type': 'application/json',
            }
        }).then(res => res.json())

        console.log(request)

        dispatch({
            type: "USER_LOGIN",
            payload: request
        })
    }
 类似资料:
  • 我正在从服务器向客户端发送自定义web套接字帧。我成功地实现了无缝握手,但发送常规文本帧会给我带来问题(客户端的消息未被接收)。这是我发送的: 数据发送正确(握手成功,jj值为6)。我的代码基于这里的解释,如何在服务器端发送和接收WebSocket消息?。 我的客户非常简单,我只是为了完成发布: 我从客户端获得的Web套接字版本是13。 知道为什么握手有效而普通文本无效吗?

  • 问题内容: 所以现在,我正在制作一个基于客户端服务器应用程序的多线程。在服务器端,我为接受的每个连接创建了一个线程。 在线程类中,我创建了一种将命令发送到客户端的方法。我只想要的是如何将参数发送到所有正在运行的客户端?为简单起见,我只想使此服务器向所有连接的客户端发送消息。 我已经阅读了这篇文章,并从此链接中找到方法。但是,当我尝试使用自己的代码时,中没有类似的方法。 好的,这是我的服务器和线程示

  • 我正在创建我的产品,并与这个问题。有一天,我设置了Socket.io,一切都很好。第二天,我将服务器和客户端从http迁移到HTTPS。迁移后客户端和服务器端仍然连接,但不能从客户端发射到服务器,从服务器发射到客户端。 我的ssl证书位于和中,它们加载正确。运行在上的服务器 我的示例react组件。我的react应用程序运行在上。HTTPS连接良好,工作良好。 我该怎么办?也许我在中错误地使用了s

  • 问题内容: 我将实现类似于Facebook通知和此网站的内容(StackOverflow的通知会通知我们是否有人为我们的问题写评论/答案等)。请注意,用户将使用我的应用程序作为网站而不是移动应用程序。 我遇到以下获取结果的答案,但我需要推送结果而不是获取结果。 根据建议,我在实体类中创建了一个简单方法,并向其中添加了@PostPersist,但此方法不起作用,因此基于此答案,我添加了persist

  • 当我提交表单时,我在浏览器控制台中看到“emit”消息,所以我知道表单提交事件正在触发,但我没有在服务器上收到测试消息。客户端或服务器端似乎什么也没发生,“socket.emit”函数似乎什么也没做。 我做错了什么?

  • 实际上,向服务器发送json字符串(Post)时收到400个错误请求异常, 在Url下面,我得到了这个例外。 _http://---.---.--.---:---/注册/注册用户/{JSON STRING}/{密码} 所以JSON字符串和密码在下面给出 _http:// -。- .- .-:-/sign up/signu user/{ " session id ":" 99 c 77 c 9 b-