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

未处理的拒绝(语法错误):输入意外结束[重复]

池兴邦
2023-03-14

我正在制作一个专用于电子邮件订阅者的组件...喜欢这个

import React from "react";

class SubscribeOffer extends React.Component {
constructor () {
    super();
    this.state={
        email: ""
    }
}

fillEmailToSubscribe = (event) => {
    this.setState({email: event.target.value});
}

submitEmailToSubscribe = () => {
    if (this.state.email > 3) {
        fetch('https://(myuser).list-manage.com/subscribe/post?u=(somenumber)&id=(myid)'
        ,{
            mode: 'no-cors',
            method:'POST',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify({
                email:this.state.email
            })
        })
        .then(response => response.json())
        .then(() => {
            alert('Thank you for subscribing!');
        })
    }

}

render () {
    return (
        <div>
            <h1>Get updated upcoming events in your inbox everyday!</h1>
            <p>Would you like us to give you updates with future updates upcoming events?</p>
            <input 
                type='email'
                name='email-address'
                id='email-address'
                placeholder="your email" 
                onChange={this.fillEmailToSubscribe}
                required
            />
            <button onClick={this.submitEmailToSubscribe}>Subscribe</button>
        </div>
    )
}
}

export default SubscribeOffer;

然而,我只得到这样的回应

Unhandled Rejection (SyntaxError): Unexpected end of input

你知道我如何解决这个问题吗?我让它变得像人们输入他们的电子邮件一样简单,只需单击按钮,就这样。

非常感谢您的任何帮助!

共有2个答案

詹甫
2023-03-14

由于您的电子邮件是构造函数中定义的字符串,并且您将该电子邮件与数字进行比较将是您的第一个错误。

因此,您可以使用如下内容从“submitEmailToSubscribe”函数更新if循环:

if(this.state.email.trim() !== '') {
  fetch('https://(myuser).list-manage.com/subscribe/post?u=(somenumber)&amp;id=(myid)'
    ,{
        mode: 'no-cors',
        method:'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify({
            email:this.state.email
        })
    })
    .then(() => alert('Thank you for subscribing!'));
}
饶曦之
2023-03-14

您得到的错误是因为,它发送了空响应(例如,将响应作为空对象{}),因为您试图获取json()。这是因为cors。

尝试将** 'Access-Control-Allow-Origin':'*' ** 添加到标头和模式中,作为 'cors'。您需要先从 API 获取响应。

 类似资料:
  • 我得到了的意外结束。代码对我来说很好,我错过了什么? 安慰:

  • 我试图使用下面的代码从一个api网站获取一个JSON文件,但是当我使用下面的代码获取时,我得到一个错误,说“JSON输入意外结束”

  • 问题内容: 我得到了以下代码 请注意,我对数据值进行了硬编码。数据被很好地推送到数据库中。但是,我不断收到错误“解析错误语法错误,输入意外结束”。我确定我的数据使用正确的JSON语法。当我在Chrome检查器的网络上进行检查时,saveProduct请求显示数据正确。 此POST请求没有响应。因此,我对于解析错误的来源一无所知。我尝试使用FireFox浏览器。同样的事情发生了。 任何人都可以对什么

  • 我正在尝试在Go API服务器和基于React的前端之间发送JSON。我得到以下错误: 错误:SyntaxError:JSON输入意外结束 它说这发生在第25行,这是 这是相关的函数: 在尝试了一些故障排除之后,我将错误捕捉添加到带有“成功”和“错误”输出的函数中,这样它至少可以停止弹出错误页面,并在API服务器上添加一些控制台输出,以查看数据是否正在传递。 除了出现错误之外,一切似乎都在按预期运

  • 我在第5个小时,我想是时候寻求帮助了。我正在尝试使用Ajax+PHP将表单上的一个图像和一些文本数据上传到数据库。整个系统是: 一个包含表单php处理页面和javascript函数的输入页面,该函数将表单发布到php处理页面,并将结果返回给上的div 问题是javascript中的$.parsejson(data)命令会导致“Input end of Input”错误: 我以为我的javascri

  • 问题内容: 我有一个SQL查询,当将其放入函数中时,它将停止处理此错误消息。从功能中删除它会使它再次开始工作。 为什么是这样? 问题答案: 缩进的Heredoc分隔符将其破坏。说: 代替