Ver código fonte

Add clearer tips (#475)

* Add clearer tips

* fix some error
陈帅 8 anos atrás
pai
commit
94c236301b
1 arquivos alterados com 24 adições e 16 exclusões
  1. 24 16
      src/utils/request.js

+ 24 - 16
src/utils/request.js

@@ -1,15 +1,33 @@
 import fetch from 'dva/fetch';
 import { notification } from 'antd';
 
+const codeMessage = {
+  200: '服务器成功返回请求的数据',
+  201: '新建或修改数据成功。',
+  202: '一个请求已经进入后台排队(异步任务)',
+  204: '删除数据成功。',
+  400: '发出的请求有错误,服务器没有进行新建或修改数据,的操作。',
+  401: '用户没有权限(令牌、用户名、密码错误)。',
+  403: '用户得到授权,但是访问是被禁止的。',
+  404: '发出的请求针对的是不存在的记录,服务器没有进行操作',
+  406: '请求的格式不可得。',
+  410: '请求的资源被永久删除,且不会再得到的。',
+  422: '当创建一个对象时,发生一个验证错误。',
+  500: '服务器发生错误,请检查服务器',
+  502: '网关错误',
+  503: '服务不可用,服务器暂时过载或维护',
+  504: '网关超时',
+};
 function checkStatus(response) {
   if (response.status >= 200 && response.status < 300) {
     return response;
   }
+  const errortext = codeMessage[response.status] || response.statusText;
   notification.error({
     message: `请求错误 ${response.status}: ${response.url}`,
-    description: response.statusText,
+    description: errortext,
   });
-  const error = new Error(response.statusText);
+  const error = new Error(errortext);
   error.response = response;
   throw error;
 }
@@ -37,20 +55,10 @@ export default function request(url, options) {
 
   return fetch(url, newOptions)
     .then(checkStatus)
-    .then(response => response.json())
-    .catch((error) => {
-      if (error.code) {
-        notification.error({
-          message: error.name,
-          description: error.message,
-        });
+    .then((response) => {
+      if (newOptions.method === 'DELETE' || response.status === 204) {
+        return response.text();
       }
-      if ('stack' in error && 'message' in error) {
-        notification.error({
-          message: `请求错误: ${url}`,
-          description: error.message,
-        });
-      }
-      return error;
+      return response.json();
     });
 }