javascript - 原生js实现jsonp遇到MIME type报错,如何解决?
ringa_lee
ringa_lee 2017-04-10 16:55:40
[JavaScript讨论组]
  1. 描述你的问题
    用原生javascript实现的jsonp方法,后端代码用的是php,在执行的时候,遇到了这样的问题,请问如何解决?

  2. 贴上相关代码

    getJSONP : function(url,callback){
            //为本次请求创建唯一的一个回调函数名称
            var cbnum = "cb" + this.getJSONP.counter++; //
            var cbname = "getJSONP."+cbnum;   //作为JSONP函数的属性
    
            if(url.indexOf("?") === -1){
                url += "?jsonp="+cbname;
            }else{
                url += "&jsonp="+cbname;
            }
            //创建script元素用于发送请求
            var script = document.createElement("script");
    
            //定义将脚本执行的回调函数
            this.getJSONP[cbnum] = function(response){
                //response.ContentType("application/javascript");
                try{
                    callback(response); //处理响应数据
                }
                finally{
                    delete getJSONP[cbnum];    //删除该函数
                    script.parentNode.removeChild(script);  //移除script元素
                }
            };
    
            //立即出发HTTP请求
            script.src = url;
            script.charset = "utf-8";
            script.type = "text/javascript";
    
            document.body.appendChild(script);
        }
  3. 贴上报错信息

    Refused to execute script from 'https://api.github.com/users/xxx?jsonp=getJSONP.cb0' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.
  4. 已经尝试过哪些方法仍然没解决(附上相关链接)

解决方法中提到通过设置contentType为application/javascript就好,请问要如何设置呢?

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHP中文网

要在你的后端PHP代码中设置,在响应头部设置Content-Typeapplication/javascript

大家讲道理

header()

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号