

我也遇到这个问题了。求解
有人提供一下怎么修改吗?

数据是有返回,想弹个提示不知道在哪处理。直接就报这个错。
你们能提供一个可以访问的有问题的页面或者 repo 吗?我本地没有模拟出来
好像找到问题了,我跟一下
可能不是同一个问题,试着给requst 添加参数 mode: 'no-cors' 看能解决吗,如果不能,请帖下 network 和一个可重现问题的最小demo,帮助解决问题。
你们能提供一个可以访问的有问题的页面或者 repo 吗?我本地没有模拟出来
就是后台返回的状态码400,在umi request errorhandler里捕捉不到。因为后台返回了错误提示信息,需要统一处理。比如 用户输入密码字数太少或者不正确,后台返回个提示“密码不正确”并返回错误码400。类似这样的400错误,提示信息需要在errhandle里统一处理
其实我也没做什么特别的处理。就是模版工程请求了一下服务端的接口。我把我的request。ts发上来
都是本地工程,没有demo。要的话只能把整个本地工程先传上来

只要是这种status返回400的接口都不行。
服务端要把所有的接口无论对错都改为 返回200,前端才能取值,然后根据code处理。只要服务端返回400,就出现上面的问题。
DELETE http://47.96.120.4:9998/ams/department/3
你用这个接口试一下,什么参数都不传。就是报400. 随便用模版工程就可以。看看能不能重现。
出现这个问题后,再发请求就永远都不会发起请求了。需要刷新后才能再发。

build 后的版本会弹这个? 说明build后的是正常的?
打了log发现build后确实是正常的。
开发模式下怎么都进不了这里。
两个问题:

errorHandler 有设置但取到的是undefine。 调试发现服务端的数据data是有在,但是不知道应该怎么取到。


这种设置可以。剩下一个问题就是一旦出现了400,这个请求就再也不会发起,loading状态也是一直都是true,继续研究中。

加个return data。 终于通了。不晓得是不是规范的,研究老半天不容易。 如果是错的,请大神帮忙看看。
@fjnetinfo 你这里 return data,那在调用那里得到这个值,如果没有 return,调用那里就是一个 undefined。readme里有写
@fjnetinfo 请问你是怎样出现这个报错的?包括 @yangdachu,能否说明一下或者提供完整 repo,因为我无法重现这个问题。或者加我钉钉k9qari9

@clock157 你可以本地创建一个ts版本的新项目,在errorHandler里断点就好了
服务器返回401也类似问题
看起来是 pro 的问题。 错误之后没有进行 return 数据。
@chenshuai2144 按照你的方法return数据依然不行


@clock157 看你的了。是不是把这个错误吃掉,不要抛出来交给用户自行处理
@yangdachu 在请求中.catch 能拿到吗
https://github.com/ant-design/ant-design-pro/issues/4794#issuecomment-511178842
https://github.com/ant-design/ant-design-pro/issues/4794#issuecomment-511179105
我一共改了这两个地方才终于正常了呀。
我需要处理服务端返回的data。因为那里面包含了一些提示语是我要的。最好不好吃掉。
我们服务端是除了正常的status 200外,其他的都是用4xx或5xx等code返回的,如果全吃掉了,那提示语就没法做了。我跟踪了代码发现umi-request/dist/index.es.js里面有 code>=200 <300相关的判断,这样我们服务端的设计不太符合这个,所以我只好在这个框架的异常上 return data来拿到服务端返回的值。
@fjnetinfo 你这里 return data,那在调用那里得到这个值,如果没有 return,调用那里就是一个 undefined。readme里有写
就是得不到undefined。model那边不会走到response,卡住了。所以请求就无法再次发起了,loading状态一直不会变。
这种设置可以。剩下一个问题就是一旦出现了400,这个请求就再也不会发起,loading状态也是一直都是true,继续研究中。
errorhandler如果不设置,model那边也是会卡住永远不会得到undefined的值, model的call下一句打log都不会到,导致请求永远处于无结果状态,控制器报异常。errorhandler设置在extend在yarn start下又无效,build后有效。 我改成直接设置在option上可以进去。
工程真的没有特别的。就是 create umi,然后请求服务端接口,比如:
DELETE http://47.96.120.4:9998/ams/department/3
我没有钉钉,我看下整一个。
晕。我刚刚同步的工程居然可以。醉了。还想搞个demo给你们看下帮忙定位下具体问题是啥。 yarn create umi,新搞了个工程,贴上request。可以。。。。。。。
这个工程其他地方有没有区别不知道,request里面多了return response了。我原来同步的工程没有这个。 不过我这边是希望return服务端返回的数据,所以要改为data。
新工程这个放在extend也可以。
/**
我就没有问题了。。。。 得研究一下怎么能够高效的跟最新代码同步,现在纯人工?
@chenshuai2144 在.catch里可以的
@fjnetinfo 我刚新建了项目还是一样的,仍然进不去errorHandler
看看 errorHandler的触发条件
@yangdachu 你的问题是没有使用 utils/request.ts,直接使用 umi-request 当然不会触发 errorHandler。

@clock157 @chenshuai2144 多谢
@waylon-edmodo 可能是同样的问题,排查下,如果无法解决可以加我钉钉
https://github.com/umijs/umi-plugin-pro-block
那就是这个插件表现异常了
@yangdachu 你的问题是没有使用 utils/request.ts,直接使用 umi-request 当然不会触发 errorHandler。
大神。这个才是正解。 通过add block进来的模块都有这问题。
@yangdachu 你的问题是没有使用 utils/request.ts,直接使用 umi-request 当然不会触发 errorHandler。
大神。这个才是正解。 通过add block进来的模块都有这问题。
钉钉有吗?交流一下antd pro?
Most helpful comment
@yangdachu 你的问题是没有使用 utils/request.ts,直接使用 umi-request 当然不会触发 errorHandler。
