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小白,欢迎指教。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值