ajax - jsonp跨域请求,没反应

查看:358
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆