ajax - jsonp跨域请求,没反应
本文介绍了ajax - jsonp跨域请求,没反应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
api:http://mylance.top/api/getHom...
api怎么看出来用跨域还是非跨域...
function refreshSwipe(data){
console.log(data);
}
function getSwipe(){
var
js = document.createElement('script'),
head = document.getElementsByTagName('head')[0];
js.src = 'http://mylance.top/api/getHomeInfo?callback=refreshSwipe';
head.appendChild(js);
}
跨域请求了一下,network里根本没有显示这个请求。
function success(text){
var banner = text;
console.log(banner);
}
function fail(status){
console.log(status)
}
let request = new XMLHttpRequest();
request.onreadystatechange = function(){
if (request.readyState === 4 && request.status === 200) {
return success(request.responseText);
}else{
return fail(request.status)
}
}
request.open('GET','http://mylance.top/api/getHomeInfo');
request.setRequestHeader('Accept','application/json');
request.send();
非跨域请求,显示错误XMLHttpRequest cannot load http://mylance.top/api/getHom... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'file://' is therefore not allowed access.
network里status为200,响应数据不可用。
所以还是要用jsonp?那上面的代码错在哪里
解决方案
用jsonp跨域请求,返回json格式是callback({...});而不是直接一个json,所以通过自己服务器的php或python调用再返回给前端吧
这篇关于ajax - jsonp跨域请求,没反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文