jsonp跨域请求,没反应

发布于 2022-09-04 04:55:00 字数 1551 浏览 13 评论 0

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?那上面的代码错在哪里

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

满意归宿 2022-09-11 04:55:00

用jsonp跨域请求,返回json格式是callback({...});而不是直接一个json,所以通过自己服务器的php或python调用再返回给前端吧

clipboard.png

单身情人 2022-09-11 04:55:00

由下图明显可知,这个接口并不支持JSONP

关于JSONP,请查阅 http://www.runoob.com/json/js...

图片描述

图片描述


JSONP的正确返回格式:

/**/ typeof fn === 'function' && fn({"data":{"province":"广东","city":"珠海","areacode":"0756","zip":"519000","company":"中国联通","card":"联通130卡"},"status":{"code":200,"message":""}});

来源: https://bird.ioliu.cn/mobile?...


补充:

可跨域的请求,一般在响应头(Response Headers)里有个Access-Control-Allow-Origin:*项,设置了允许访问的域名,*则为允许所有

可看下图:
图片描述


最后,ajax请求须在服务器环境,单文件file://打开是没法请求的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文