• 解决跨域问题


    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('系统错误~')
                        }
                    });
                });
            });
    

      

  • 相关阅读:
    A2-02-15.DML-MySQL RIGHT JOIN
    A2-02-14.DML- MySQL LEFT JOIN
    A2-02-13.DML- MySQL INNER JOIN
    NHibernate N+1问题实例分析和优化
    怎么创建移动页面应用程序
    .NET开发时让人头痛的SESSION超时
    WCF服务编程——数据契约快速入门
    数据模型类对比,用反射做个快乐的程序员
    javascript常见数据集
    provider:命名管道提供程序,error:40
  • 原文地址:https://www.cnblogs.com/szhhhh/p/12269271.html
Copyright © 2020-2023  润新知