Fetch POST Unexpected end of input Error

Posted

技术标签:

【中文标题】Fetch POST Unexpected end of input Error【英文标题】:Fetch POST Unexpected end of input Erorr 【发布时间】:2016-10-21 19:48:27 【问题描述】:

我正在尝试在 Redux 中进行身份验证的 POST 请求,我将电子邮件和密码作为正文传递,但它在控制台中返回此错误:

Uncaught (in promise) SyntaxError: Unexpected end of input

我四处寻找答案,许多人认为它可能是缺少 大括号,但我寻找它,但我认为不是那个。

这是我的 fetch 函数。

export function loginUser(creds) 

  let config = 
    mode: 'no-cors',
    method: 'POST',
    headers:  'Content-Type':'application/x-www-form-urlencoded' ,
    body: `email=$creds.email&password=$creds.password`
  ;


  return dispatch => 
    dispatch(requestLogin(creds));
    return fetch('http://localhost:4000/api/authenticate', config)
    .then(response =>
      response.json()
      .then(user => ( user, response ))
    ).then(( user, response ) =>  
      if (!response.ok) 
        dispatch(loginError(user.message));
        return Promise.reject(user);
       else 
        localStorage.setItem('id_token', user.token);
        dispatch(receiveLogin(user));
      
    );
  ;

fetch POST 方法调用 API,我在网络选项卡中看到它,我也看到了响应,但是 fetch 请求在 url 和配置之后停止在 .then(response =>

已经两天了,仍然找不到解决方案。顺便说一句,这在 Postman(chrome 扩展)中运行良好,所以 API 没有问题。

谢谢

回答编辑:该问题与 CORS 有关,因此对于与我遇到相同问题的任何人。

【问题讨论】:

什么是response.json() @RIYAJKHAN 这是 API 的响应,包含很多关于请求的信息,例如成功与否,成功时的数据等 但是你在responce上使用的是json方法。不是吗? @RIYAJKHAN 是的,我是。 @RIYAJKHAN 我认为您不了解基于承诺的 API 调用。在这里阅读:davidwalsh.name/fetch 响应由 fetch 提供,它带有一组方法,其中一个是 .json() 【参考方案1】:

我在删除时解决了同样的问题

mode: 'no-cors'

来自配置。

【讨论】:

【参考方案2】:

无论如何,您都可以将您的 sn-p 代码简化为:

fetch('http://localhost:4000/api/authenticate', config)
  .then(response => response.json())
  .then(( user, response ) =>  

您应该添加 catch 方法来处理错误对象。

【讨论】:

以上是关于Fetch POST Unexpected end of input Error的主要内容,如果未能解决你的问题,请参考以下文章

节点包 'node-fetch' SyntaxError: Unexpected identifier

检查是不是设置了多个“post”值

Unexpected end of input 和 Unexpected token var 和 Unexpected token ;

Exception: Unexpected end of ZLIB input stream

unexpected symbolunexpected end of input

Parse error: syntax error, unexpected end of file