欢迎光临
一个学习的网站

jsonp跨域请求处理

Jsonp(JSON with Padding) 是 json的一种”使用模式”,可以让网页从别的域名(网站)那获取资料,绕过同源策略(若地址里面的协议、域名和端口号均相同则属于同源),即跨域读取数据。
jsonp:利用script标签可以跨域,让服务器端返回可执行的Javascript函数,参数为要回发的数据。可看做带有回调函数的ajax请求。

js代码

<script type="text/javascript">  
$(function(){     
    /*  
    //简写形式,效果相同  
    $.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",  
            function(data){  
                $("#showcontent").text("Result:"+data.result)  
    });  
    */  
    $.ajax({  
        type : "get",  
        async:false,  
        url : "http:/XXX",  
        dataType : "jsonp",//数据类型为jsonp  
        jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数  
        jsonpCallback:"自定义回调函数名"
        success : function(data){  
           alert(data.info) 
        },  
        error:function(){  
            alert('fail');  
        }  
    });   
});  
</script>  

java后端处理代码

    @ResponseBody
    @RequestMapping(value = "/url", produces= MediaType.APPLICATION_JSON)
    public String test(
                        HttpServletRequest request,
                        HttpServletResponse response) throws Exception{
        String result = getResult();
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "private,no-cache,no-store,max-age=0");
        response.setDateHeader("Expires", 0);
        String str=request.getParameter("jsonpCallback");
        if (str==null||str.equals("")) {
            return result;
        } else {
            return str + "(" + result + ")";
        }
    }

CORS协议跨域资源共享)(Cross-origin resource sharing)

它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制 详细介绍 戳此

  • Access-Control-Allow-Origin:* 允许所有域名的脚本访问该资源
  • Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS 运行什么方式访问资源
  • Access-Control-Expose-Headers:x-requested-with 暴露的信息
赞(1) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《jsonp跨域请求处理》
文章链接:https://zixijiaoshi.com/1990.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏