react+ant -- http请求返回304或者200,Sorry, we need js to run correctly!

问题:调取后台接口返回304或者200,Sorry, we need js to run correctly!

原因:查过网上的一些资料说的是因为api的接口和models或者mock里面的字段有出入,不一致,但是我前前后后对照了好几遍,我确定我写的是一样的,问题是同样一个接口,他放别的js页能掉用成功,就放在这个js里调取不成功。

           我仔细对比了调取成功的接口和调取失败的接口,

            成功的: http://localhost:8000/server/api/xxx/xx/xxx?page=1&size=5

            失败的http://localhost:8000/teacher/server/api/xx/xx/xx?page=1&size=5

           很明显失败的比成功的多了一个参数,teacher是我当前页面的路由

解决办法:找到路径在server前面加一个 /

下面贴上源码,方便阅读

Teacher.js

getData = params => {
    const { dispatch } = this.props;
    dispatch({
      type: 'teacher/fetch', // teacher对应的是teache.js fetch对应的是teacher.js里的fetch方法
      payload: xxx, // 传的参数
    });
  };

teacher.js (我这个文件是放在src/models下面的,看各自项目路径,就是调取api接口的js文件)

effects: {
    // 获取教师列表
    * fetch({ payload }, { call, put }) {
      const response = yield call(getTeacher, payload); // api里的getTeacher方法, 我这里只用获取,不用接收返回值,所以我就不写callback了, getTeacher需要在最上面import{getTeacher}from '@/services/api';一下 ,具体调取后台接口我写在另外一篇博文里
      yield put({
        type: 'getTeacher',
        payload: response,  // 这个是返回值
      });
    },
}

api.js

// 不稳定的写法
export async function getTeacher(params = {}) {
  return request(`server/api/teacher/list/findByPage?${stringify(params)}`);
// 注意括号里面是`` 不是'', server是你在config里定义的
}
// 调取成功的写法
export async function getTeacher(params = {}) {
  return request(`/server/api/teacher/list/findByPage?${stringify(params)}`);
}

// 我其实也没太明白为啥有的加/才能调取成功,有的不用/也能调取成功,emm下次空了再研究,最近赶项目,有知道原因的也可告诉我一声,我react小白,欢迎指教。

注:出现一个问题的原因有很多,我的只是其中的一种解决方法,希望能帮助到您~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用ReactAnt Design来实现一个用户管理功能非常简单。首先,我们需要创建一个React应用程序。可以使用脚手架工具(如Create React App)来快速搭建起一个React应用的基本结构。 1. 创建React应用程序 使用以下命令来创建一个新的React应用程序: ``` npx create-react-app user-management cd user-management ``` 2. 安装Ant Design 在项目根目录下运行以下命令来安装Ant Design依赖项: ``` npm install antd ``` 3. 集成Ant Design组件 编辑src/App.js文件,导入所需的Ant Design组件并编写用户管理功能的代码。以下是一个简单的示例: ```jsx import React, { useState } from 'react'; import { Table, Button, Modal, Form, Input } from 'antd'; const App = () => { const [users, setUsers] = useState([]); const [isModalVisible, setIsModalVisible] = useState(false); const columns = [ { title: '姓名', dataIndex: 'name', key: 'name' }, { title: '年龄', dataIndex: 'age', key: 'age' }, { title: '操作', key: 'action', render: (text, record) => <Button onClick={() => deleteUser(record.key)}>删除</Button> } ]; const [form] = Form.useForm(); const addUser = () => { form.validateFields().then(values => { const user = { name: values.name, age: values.age, key: users.length + 1 }; setUsers([...users, user]); form.resetFields(); setIsModalVisible(false); }); }; const deleteUser = (key) => { setUsers(users.filter(user => user.key !== key)); }; return ( <div> <Button onClick={() => setIsModalVisible(true)}>添加用户</Button> <Table dataSource={users} columns={columns} /> <Modal title="添加用户" visible={isModalVisible} onCancel={() => setIsModalVisible(false)} onOk={addUser}> <Form form={form}> <Form.Item name="name" label="姓名" rules={[{ required: true }]}> <Input /> </Form.Item> <Form.Item name="age" label="年龄" rules={[{ required: true }]}> <Input /> </Form.Item> </Form> </Modal> </div> ); }; export default App; ``` 4. 运行应用 使用以下命令来运行应用程序: ``` npm start ``` 应用程序将在浏览器中自动打开。您现在就可以通过点击“添加用户”按钮来添加用户,点击“删除”按钮来删除用户,并且可以通过Ant Design的Table组件来显示用户列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值