首页 > 解决方案 > Axios 和 RequireJS 集成失败

问题描述

我在 RequireJS 和 Axios 之间集成时出错:

<HEAD>
<script src="3party/require.js"></script> 

<SCRIPT>
//work!
 requirejs(['/bower_components/jquery/dist/jquery'],()=>{
        console.debug($);
     })

//error  
 requirejs(['/bower_components/axios/dist/axios'],()=>{
        axios.get('https://httpbin.org/get').then(function(response){ 
              console.log(response.status); // ex.: 200
            });  
     });
</SCRIPT>
</HEAD

该 URL 是一个测试服务,出现以下错误。

require.js:5 Uncaught Error: Script error for "/bower_components/axios/dist/axios"
https://requirejs.org/docs/errors.html#scripterror
    at makeError (require.js:5)

任何 URL,甚至是下面的行,都会发生错误:

console.debug(axios);

我正在使用以下版本:

"axios": "^0.19.2",

标签: axiosrequirejs

解决方案


我检查了 AXIOS 代码,它确实支持 AMD。所以你需要把它当作普通的 AMD 来使用:

<HEAD>
<script src="3party/require.js"></script> 

<SCRIPT>
 requirejs(['/bower_components/jquery/dist/jquery'],()=>{
        console.debug($);
     })

 requirejs(['/bower_components/axios/dist/axios'],(axios)=>{ // axios is given as a argument to a your callback
        axios.get('https://httpbin.org/get').then(function(response){ 
              console.log(response.status); // ex.: 200
            });  
     });
</SCRIPT>
</HEAD>

AXIOS 将不会作为全局模块提供,而是在您需要时作为本地模块提供 :)


推荐阅读