angular cli 反向代理實現跨域

来源:https://www.cnblogs.com/shuangzikun/archive/2019/11/21/11904783.html
-Advertisement-
Play Games

版本: 1、後端實現跨域(php) header("Access-Control-Allow-Origin: *"); // // 響應類型 // header('Access-Control-Allow-Methods:POST'); // // 響應頭設置 // header('Access-C ...


版本:

 

 

 1、後端實現跨域(php)

header("Access-Control-Allow-Origin: *");
// // 響應類型
// header('Access-Control-Allow-Methods:POST');
// // 響應頭設置
// header('Access-Control-Allow-Headers:x-requested-with, content-type');

2、前端跨域 

項目目錄下新建proxy.config.json文件

 

 

 proxy.config.json

 

{
  "/api": {  
    "target": "http://localhost",    // php服務路徑
    "logLevel": "debug",  
    "changeOrigin": true, 
    "pathRewrite": { 
      "^/api": ""
    }
  }
}

package.json

{
  "name": "web",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --proxy-config proxy.config.json --open",   // 修改
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^8.0.0",
    "@angular/cdk": "^8.0.0",
    "@angular/common": "~8.0.0",
    "@angular/compiler": "~8.0.0",
    "@angular/core": "~8.0.0",
    "@angular/forms": "~8.0.0",
    "@angular/material": "^8.0.0",
    "@angular/platform-browser": "~8.0.0",
    "@angular/platform-browser-dynamic": "~8.0.0",
    "@angular/router": "~8.0.0",
    "@types/echarts": "^4.4.1",
    "@types/jquery": "^3.3.29",
    "chart.js": "^2.8.0",
    "crypto": "^1.0.1",
    "echarts": "^4.4.0",
    "express": "^4.17.1",
    "font-awesome": "^4.7.0",
    "jquery": "^3.4.1",
    "mysql": "^2.17.1",
    "ngx-echarts": "^4.2.1",
    "primeflex": "^1.0.0",
    "primeicons": "^1.0.0",
    "primeng": "^7.1.3",
    "rxjs": "~6.4.0",
    "tslib": "^1.9.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.800.0",
    "@angular/cli": "~8.0.1",
    "@angular/compiler-cli": "~8.0.0",
    "@angular/language-service": "~8.0.0",
    "@types/jasmine": "^3.3.16",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^8.10.59",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "node-mysql": "^0.4.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.4.3"
  }
}

啟動使用 npm start

訪問使用 http:localhost:4200/api  就會映射到http:localhost

this.http.post('http://localhost:4200/api', {name: this.name, company: this.company, price: this.price }, {
        headers: {
          'Content-Type': 'application/json'
        }
      }).subscribe((res: any) => {
        if (res.resultCode == 200) {

        }
        // 載入成功之後做一些事
      }, (err: any) => {
      });

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JS基本語法 while迴圈 練習 練習1: 求6的階乘 var ji = 1;//存儲最終的階乘的結果 var i = 1;//開始的數字 while (i <= 6) { ji *= i; //ji=ji*i 加減乘除都可以這樣表示 i++; } console.log(ji); 練習2: 求1 ...
  • 筆記+小案例 1 <style> 2 3 .zi{ 4 height:100px; 5 width:100px; 6 background:purple; 7 margin:2px; 8 line-height:100px; 9 text-align: center; 10 color:#fff; ...
  • 父元素高度自適應,子元素 float 後,造成父元素高度為0,稱為高度塌陷問題。 推薦使用萬能清除法解決。(給需要清除浮動的元素添加一個class名 clear) 萬能清除法代碼 父元素:after{ content: ""; height: 0; clear: both; overflow: hi ...
  • 幾個點擊事件 1 <body> 2 <button>jq點擊</button> 3 <input type="button" id="btn1" value="第一種"> 4 <input type="button" id="btn2" value="第二種"> 5 <input type="but ...
  • 迴圈:一件事不停的或者是重覆的做 迴圈要有結束的條件,迴圈還應該有計數器(記錄迴圈的次數的) while迴圈 while迴圈語法: 計數器 var 變數=0; while(迴圈的條件){ 迴圈體; 計數器++; } 執行過程: 先判斷條件是否成立,(條件的結果是true還是false),如果是fal ...
  • 倒計時定時器 、 迴圈定時器 及定時器的清除 1 <body> 2 <div> 3 <input type="button" onclick="yi()" value="啟動倒計時定時器"> 4 <input type="button" onclick="er()" value="啟動迴圈定時器"> ...
  • 分支語句: if語句:一個分支 if-else語句:兩個分支,最終只執行一個分支 if-else if-else if...語句: 多個分支,也是只會執行一個 switch-case語句:多分支語句,最終也會一個(必須要有break) 三元表達式:和if-else語句是一樣的 什麼時候使用if-el ...
  • 當項目業務越來越複雜,打包出來的代碼會非常冗餘,文件體積會非常龐大。大體積文件會增加編譯時間,影響開發效率;如果直接上線,還會拉長請求和載入時長,影響網站體驗。作為一個追求極致體驗的攻城獅,是不能忍的。所以在多頁應用中優化打包尤為必要。那麼如何優化webpack打包呢? ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...