zoukankan      html  css  js  c++  java
  • 解决跨域问题

    1.方法一:设置请求头

    创建a工程并编写servlet

     //解决跨域问题
            //方法一:添加请求头
            // 接收数据
            String username=req.getParameter("username");
            System.out.println("接收的数据:"+username);
    
            //响应数据
            resp.getWriter().write("success~");
            //设置请求头
            resp.setHeader("Access-Control-Allow-Origin", "*");

    创建b工程编写一个jsp页面并请求a工程中的servlet

    $(function () {
                $("#button").click(function () {
                    //获取到文本框的值
                    var username=$("#username").val();
                   //发送ajax请求a工程
                    $.ajax({
                        url:"http://www.a.com:8080/a/AServlet",
                        data:{"username":username},
                        type:"POST",
                        success:function (result) {
                            alert(result);
                        },
                        error:function () {
                            alert("系统错误");
                        }
                    })
                })
            })

    2.方法二:使用JSONP方式解决跨越问题

    在a工程中的servlet编写如下

     //方法二:使用JSONP解决跨域问题
            String username=req.getParameter("username");
            System.out.println("接收的数据:"+username);
    
    
            //接收ajax传递的数据
            String jsonpcallback = req.getParameter("jsonpcallback");
            System.out.println(jsonpcallback);
            //响应数据
            String success = JSON.toJSONString("success~");
    
            //2.响应结果
            resp.getWriter().write(jsonpcallback+"("+success+")");

    在b工程中的jsp页面中编写如下

    $(function () {
                $("#button").click(function () {
                    //获取到文本框的值
                    var username=$("#username").val();
                    // //发送ajax请求a工程
                    $.ajax({
                        url:"http://www.a.com:8080/a/AServlet?username="+username,
                        type:"GET",
                        jsonp:"jsonpcallback",  //jsonp回调函数
                        dataType:"JSONP",
                        success:function (result) {
                            alert(result);
                        },
                        error:function () {
                            alert("系统错误");
                        }
    
                    })
                })
            })

    3.方法三:使用HttpClient解决跨域问题

    在a工程中的servlet编写如下

     // 接收数据
            String username=req.getParameter("username");
            System.out.println("接收的数据:"+username);
    
            //响应数据
            resp.getWriter().write("success~");

    在b工程中的jsp页面中编写如下

     $(function(){
                $("#button").click(function () {
                    //获取到文本框的值
                    var username=$("#username").val();
                    //发送Ajax请求www.a.com的A工程
                    $.ajax({
                        url:"BServlet?username="+username,
                        type:"GET",
                        success:function (result) {
                            alert(result);
                        },
                        error:function () {
                            alert('系统错误~')
                        }
                    });
                });
            });
    

      

  • 相关阅读:
    [bzoj1568]李超线段树模板题(标志永久化)
    [tyvj1860]后缀数组
    [poj3264]rmq算法学习(ST表)
    LintCode-82.落单的数
    LintCode-53.翻转字符串
    LintCode-56.两数之和
    LintCode-379.将数组重新排序以构造最小值
    LintCode-5.第k大元素
    LintCode-3.统计数字
    LintCode-4.丑数 II
  • 原文地址:https://www.cnblogs.com/szhhhh/p/12269271.html
Copyright © 2011-2022 走看看