在react中用axios发起跨域请求,发现提示“No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.”,就是跨域了,不能访问。是不是axios不支持跨域访问的?如果支持,是怎么写的?我用jquery是可以的。fetch支持跨域访问吗?怎么写的?
jquery代码是这样的:
$.ajax({
url : 'http://m.maizuo.com/v4/api/film/coming-soon?_t='+new Date().getTime()+ '&page=1&count=3',
type : 'GET',
dataType : 'jsonp',
}).done(function(data){
console.log(data)
})
还有,为什么要专门有方法处理axios的并发请求?像下面一样:
function getUserAccount() {
return axios.get('/user/12345');
}
function getUserPermissions() {
return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) {
// Both requests are now complete
}));
我一个个来不行吗?像这样:
axios.get('/user/12345'}.then(function(res){
console.log(res)
})
axios.get('/user/12345/permissions'}.then(function(res){
console.log(res)
})
这两种方法有什么区别啊?
第一个问题,请列出你jquery的代码。
补充
你的jquery是用的jsonp来实现跨域请求的,但是axios的作者明确表态不支持jsonp,所以你需要把服务端改为
Access-Control-Allow-Origin
跨域。你后端用的什么语言,百度一下就有了相关信息:
github-看来axios不支持JSONP调用
github-添加对JSONP请求支援
第二个问题。
就这个区别