如何修复 Reactjs、Django、Django Rest Frame 工作项目中的“net::ERR_CONNECTION_REFUSED 和错误:网络错误”错误

Posted

技术标签:

【中文标题】如何修复 Reactjs、Django、Django Rest Frame 工作项目中的“net::ERR_CONNECTION_REFUSED 和错误:网络错误”错误【英文标题】:How to fix "net::ERR_CONNECTION_REFUSED and Error: Network Error" error in Reactjs,Django,Django Rest Frame work project 【发布时间】:2019-06-13 05:01:27 【问题描述】:

我正在尝试通过 django rest api 通过 post 方法将 reactjs 中的数据传递到 django,但出现了这个问题。 我已经通过 Django-REST Api GUI 测试了 post 方法。它运行良好。

我的 Reactjs 组件代码:

从“反应”中导入反应,组件 导入'./Register.css'; 从'axios'导入axios

const REGISTER_URL = 'http://127.0.0.1:8000/api/register/?format=json' // 收到 api ulr...

常量初始状态 = 用户名 : '', 电子邮件 : '', 密码: ''

类注册扩展组件

constructor()
    super()

    this.myRegister = React.createRef()



state = 
    ...initiaState



changeHandler = (event) => 

    this.setState(
        [event.target.name]: event.target.value
    )



submitHandler = (event) =>
    event.preventDefault()
    console.log(this.state)
    this.myRegister.current.reset()
    this.setState(
        ...initiaState
    );
    axios.post(REGISTER_URL,this.state)
    .then(res =>
        console.log(res)

    )
    .catch(error =>
        console.log("ERROR::: "+error)
    )


render()

    return(
        <div className="Register-box">

        <form ref = this.myRegister className="Form" onSubmit=this.submitHandler >
            <div className ="form-group ">
              <label htmlFor="username" > Name: </label>
               <input
               className = "from-control ml-4"
               type="text" 
               placeholder = '  Enter Your Name '
               name = "username"
               id = "username"
               value = this.state.name 
               onChange = this.changeHandler
               />
            </div>

            <div className ="form-group">
              <label htmlFor="email" > Email: </label>
               <input 
               className = "from-control ml-4" 
               type="text" 
               placeholder = '  Enter Your Email '
               name = "email"
               id = "email"
               value = this.state.email 
               onChange = this.changeHandler
               />
            </div>

            <div className ="form-group">
              <label htmlFor="password" className="mr-4"> Password: </label>
               <input
               className = "from-control ml-2" 
               type="password" 
               placeholder = '  Enter Your Password '
               name = "password"
               id = "password"
               value = this.state.password 
               onChange = this.changeHandler
               />
            </div>



            <button className = "btn btn-primary" type="submit" value="Submit"> Submit </button>
        </form>



        </div>

    );


导出默认寄存器;

【问题讨论】:

因为你的请求是一个 POST,你需要检查你发送 csrf 令牌的方式,你可以开始检查文档:django-rest-framework.org/topics/ajax-csrf-cors 【参考方案1】:

错误是服务器连接错误。确保您已正确运行您的服务器。

    检查您的 IP 地址是否正确 当您以调试/测试模式运行 Django 服务器时。使用 python manage.py runserver 0.0.0.0:8000 运行您的服务器,这里 8000 是端口号。

【讨论】:

以上是关于如何修复 Reactjs、Django、Django Rest Frame 工作项目中的“net::ERR_CONNECTION_REFUSED 和错误:网络错误”错误的主要内容,如果未能解决你的问题,请参考以下文章

运行reactjs第一个代码后如何修复错误

Django框架-- Djang与Ajax

创建djang+vue项目

如何修复初学者的ReactJS错误?

如何让 Django 和 ReactJS 一起工作?

reactjs和django如何结合或集成