zoukankan      html  css  js  c++  java
  • extjs 跨域请求前后台

    首先简单了解下什么是跨域:

    跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

    所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子:

    http://www.666.com/index.html 调用 http://www.666.com/server.php (非跨域)

    http://www.666.com/index.html 调用 http://www.777.com/server.php (主域名不同:666/777,跨域)

    http://abc.666.com/index.html 调用 http://def.666.com/server.php (子域名不同:abc/def,跨域)

    http://www.666.com:8080/index.html 调用 http://www.666.com:8081/server.php (端口不同:8080/8081,跨域)

    http://www.666.com/index.html 调用 https://www.666.com/server.php (协议不同:http/https,跨域)

    请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。

    浏览器执行javascript脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。

    大致了解后废话少数,直接上代码;

    extjs 前端代码:

        //跨域请求修改数据
            $.ajax({
                type : "POST",
                url : 'http://10.18.66.66:8080/SK/updateUnitProjectMonthPlanStatus.do',
                traditional : true,//规定是否使用传统的方式浅层进行序列化(参数序列化)
                data : {
                    'MONTH_PLAN_ID_' : monthPlan.MONTH_PLAN_ID_
                },
                xhrFields : {
                    withCredentials : true
                },
                success : function(data) {
                    if (data.success) {
                        //alert("解除工程预算,成功!");
                    }
                },
                error : function() {
                    Ext.MessageBox.alert('诶,跨域失败了,服务器大哥那边不肯。', data.message, Ext.MessageBox.ERROR);
                }
            });

    JAVA后端

         response.addHeader("P3P", "CP=CAO PSA OUR");// 使用P3P协议自动更改IE浏览器安全级别
            // 获取请求方地址request.getHeader("Origin")
            // 设置允许跨域
            response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
            // 是否允许后续请求携带认证信息(cookies),该值只能是true,否则不返回
            response.setHeader("Access-Control-Allow-Credentials", "true");
  • 相关阅读:
    豆瓣最佳影评-星级转换
    佛山链家-bs修改网页代码难题-待突破
    爬取学校官网新闻-bs与xpath的恩怨情仇
    猫眼电影评论(1366错误)-版本一
    books新手实践xpath
    scrapy项目入门--shell的使用!
    selenium模拟浏览器进行百度搜索
    在VM中安装CentOs后无法切换到root用户
    VMware安装Linux虚拟机(手动划分分区)(CentOS为例)详细图解
    JDBC连接数据库 mysql serverTimezone 时差问题
  • 原文地址:https://www.cnblogs.com/mwd-banbo/p/11884777.html
Copyright © 2011-2022 走看看