axios - 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",
解决方案
我检查了 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 将不会作为全局模块提供,而是在您需要时作为本地模块提供 :)