• AngularJs跨域请求Java的实现---博客园老牛大讲堂


    一、首先angularJs实现跨域请求java思路

      首先我先介绍一下Html端(前端),然后介绍一下后端java(后端采用MVC模式)。

    二、$Http跨域请求方式跨域请求

      前端代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <!--博客园老牛大讲堂-->
            <script src="../js/angular.min.js"></script>
        </head>
        <body>
            
            <div ng-app="myApp" ng-controller="siteCtrl">
                
            <script>
                //博客园老牛大讲堂
                
                //总的来说下面的模块是固定的。跨域就按下面写
                var app = angular.module('myApp', []);
                app.controller('siteCtrl', function($scope, $http) {
                    var k=$http({
                        method:'post',
                        url: "http://127.0.0.1:8080/A/B",
                        data:{id:"1",name:"老牛大讲堂"},
                        headers:{'Content-Type': 'application/x-www-form-urlencoded'},
                        transformRequest: function(obj) {
                            
                            console.log(obj);//输出的结果是请求的参数object
                            var str = [];
                            for(var p in obj){
                                    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                            }
                            return str.join("&");
                        },
                        responseType:"text"
                    });
                    //博客园老牛大讲堂
                    k.success(function(data){
                        console.log(data);//请求后的输出数据
                        console.log(data.firstName);//根据属性得到数据的值
                        //博客园老牛大讲堂
                    });
                });
            </script>
        </body>
    </html>

       后端代码,关于java的json包装

    package Serlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import Tools.A;
    
    public class B extends HttpServlet {
        
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request,response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //http://127.0.0.1:8080/A/B?id=1&name=张三      //这个是访问路径加参数
            
    //博客园老牛大讲堂
          //下面加的头部是必须的,这是要求谁可以请求,谁不能请求 response.setHeader("Access-Control-Allow-Origin","*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type"); response.setHeader("Access-Control-Allow-Credentials", "true"); //博客园老牛大讲堂 String id=new String(request.getParameter("id").getBytes("ISO-8859-1"),"GBK"); String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GBK"); System.out.println("用户的id是:"+id+"他的名字是:"+name); //博客园老牛大讲堂 String jsoncallback = "{"firstName":"Brett"}";//模拟一个固定的json数据,将来要用第三方jar包进行包装。 PrintWriter out = response.getWriter(); out.println(jsoncallback); out.flush(); out.close(); } }

      

  • 相关阅读:
    Linux下安装jdk
    hadoop下载
    Java:xxx is not an enclosing class
    Android:Gradle报错——No resource found that matches the given name (at 'dialogCornerRadius' with value '?android:attr/dialogCornerRadius')
    TensorFlow:在PyCharm中配置TensorFlow
    Android:屏幕旋转
    Android:onActivityResult详解
    Android:Bundle类
    Android:ConstraintLayout完全解析
    Android:Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值
  • 原文地址:https://www.cnblogs.com/laonniudajiangtang/p/6413911.html
Copyright © 2020-2023  润新知