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(); } }

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM