<p>O próprio request.js do dva não suporta ie11, informando que Promise é indefinida</p>

Criado em 7 nov. 2016  ·  4Comentários  ·  Fonte: dvajs/dva

const headers = { headers:{'Content-Type': 'application/x-www-form-urlencoded'}};
const cookie = {credentials: 'include'};

const baseUrl = 'http://localhost:8088/sjyzx-oauth/';

/**
 * Requests a URL, returning a promise.
 *
 * <strong i="5">@param</strong>  {string} url       The URL we want to request
 * <strong i="6">@param</strong>  {object} [options] The options we want to pass to "fetch"
 * <strong i="7">@return</strong> {object}           An object containing either "data" or "err"
 */
export default function request(url, options) {
  return fetch(baseUrl + url, Object.assign({},options, headers, cookie))
    .then(checkStatus)
    .then(parseJSON)
    .then((data) => ({ data }))
    .catch((err) => ({ err }));
}

Com licença, é impossível definir dois cabeçalhos de solicitação? Não tenho problemas para usar outros navegadores ou posso alterar a solicitação em request.js para ajax ou Axios, isso afetará o modelo?

uncaught at anonymous
at takeEvery(auth/login, undefined) 
at anonymous 
Error: ReferenceError: “Promise”未定义
question

Todos 4 comentários

Basta adicionar um polyfill Promise e não haverá nenhum problema com outras bibliotecas ajax.

@lincenying acho que ele está encapsulado em dva / fetch, como adicionar?

Deseja continuar a usar fetch ou usar outras bibliotecas?
Se você quiser continuar a usar fetch, cite o polyfill no arquivo de entrada,
Se você quiser usar outras bibliotecas ajax, simplesmente ignore ...
É assim que eu uso axios
https://github.com/lincenying/mmf-blog-dva/blob/master/src/utils/request.js

se você usar fetch, você deve npm i Promet-polyfill -S

request.js adicione este código

importar promessa de 'promessa-polyfill'
if (! window.Promise) {
window.Promise = Promise;
}

Esta página foi útil?
0 / 5 - 0 avaliações