1. 程式人生 > >前後端分離之Vue(三)爬過得那些坑

前後端分離之Vue(三)爬過得那些坑

爬過得那些坑

前言:在整個Vue的過程中,遇到了不少坑。查詢不同的資料,把這些坑給填了,記錄下這些坑,以及解決辦法。

一、Http請求的那些坑

1.不支援http請求

表現為:程式啟動正常,點選按妞不跳轉,後臺無響應,瀏覽器調試出現

Uncaught TypeError: Cannot read property 'post' of undefined

解決辦法:新增vue-resource支援,在main.js新增

import  VueResource  from 'vue-resource'

Vue.use(VueResource);

2.post請求,後臺接收引數為null

表現為:後臺響應但是引數為null,正確的登陸失效,除錯時,引數為from object


解決辦法:http請求中,新增

{emulateJSON:true}

全部的Http請求部分程式碼為

_this.$http.post('http://localhost:8080/person/login', {
                username: _this.username,
                password: _this.password
          }
          ,{emulateJSON:true}
          )
            .then(function (response) {
              var errorcode = response.data.code;
              if (errorcode == "200") {
                _this.$router.push(
                  { path: '/HelloWorld',
                    query: {
                      user: response.data.data,
                    }
                  });
              } else {
                _this.$router.push({ path: '/Fail' });
              }
            })
            .catch(function (error) {
              console.log(error);
            });

3、正確處理後,跳轉到空頁面

原因:路由的url配置有問題,注意元件的引用的對應關係以及path的路徑問題

4.Request請求變成Options

解決辦法:設定頭格式

  http: {
        headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
      },

二、Vue檢視之間的跳轉實現

1.引用router元件

2.在router.js新增對應的view,以及相對應的path的配置

3.this.$router.push({path:'url'})

4.可參照上文的Http請求部分程式碼

三、Vue跳轉傳遞引數

採用程式設計式的實現方式

傳遞引數

   _this.$router.push(
                  { path: '/HelloWorld',//跳轉的路徑
                    query: {//query 代表傳遞引數
                      user: response.data.data,//引數名key,以及對應的value
                    }
                  });

接收引數

this.$route.query.user

user代表的引數名,不但可以傳遞單個引數,也可以傳遞對應,解析的方式user.屬性

四、例項,登陸頁面的Vue程式碼

<template>
  <div class="login">
    {{ message }}<br/>
    <input v-model="username" placeholder="使用者名稱"><br/>
    <input v-model="password" placeholder="密碼"><br/>
    <button v-on:click="login">登陸 </button>
  </div>
</template>

<script>
    export default {
      name: "login",
      data() {
        return {
          message: 'Vue 登陸頁面',
          username: '',
          password: ''
        }
      },
      http: {
        headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
      },
      methods: {
        login: function () {
          var _this = this;
          console.log(_this.username+_this.password);
          _this.$http.post('http://localhost:8080/person/login', {
                username: _this.username,
                password: _this.password
          }
          ,{emulateJSON:true}
          )
            .then(function (response) {
              var errorcode = response.data.code;
              if (errorcode == "200") {
                _this.$router.push(
                  { path: '/HelloWorld',
                    query: {
                      user: response.data.data,
                    }
                  });
              } else {
                _this.$router.push({ path: '/Fail' });
              }
            })
            .catch(function (error) {
              console.log(error);
            });
        }
      }

    }
</script>

<style scoped>

</style>

五、例項demo原始碼下載

Vue原始碼地址:https://github.com/dgyuanjun/Vue-SpringBoot.git

SpringBoot原始碼地址:https://github.com/dgyuanjun/SpringBoot-Vue.git

相關連結

前後端分離之Vue(一)Vue環境搭建 http://blog.csdn.net/shenbug/article/details/79541218

前後端分離之Vue(二)前後端整合http://blog.csdn.net/shenbug/article/details/79542717

相關推薦

前後分離Vue()那些

爬過得那些坑前言:在整個Vue的過程中,遇到了不少坑。查詢不同的資料,把這些坑給填了,記錄下這些坑,以及解決辦法。一、Http請求的那些坑1.不支援http請求表現為:程式啟動正常,點選按妞不跳轉,後臺無響應,瀏覽器調試出現Uncaught TypeError: Cannot

1.vue專案前後分離vue前端專案啟動報錯出現問題的解決)

1.首先安裝node.js環境,安裝完成之後,可在控制面板中,進行驗證,如下圖所示: 因為我自己已經裝了,所以就不需要去擔心這個問題了: "D:\IDEA_JAVA\IntelliJ IDEA 2018.2.4\bin\runnerw.exe" D:\node\node.exe D:\

從零開始搭建django前後分離專案 系列(實戰非同步任務執行)

前面已經將專案環境搭建好了,下面進入實戰環節。這裡挑選專案中涉及到的幾個重要的功能模組進行講解。 celery執行非同步任務和任務管理 Celery 是一個專注於實時處理和任務排程的分散式任務佇列。由於本專案進行資料分析的耗時比較長,所以採用非同步方式執行任務。本專案中Broker使用redis,Result

前後分離SEO優化--------以vue為例

   前言----SEO是由英文Search Engine Optimization縮寫而來, 中文意譯為“搜尋引擎優化”。SEO是指通過對網站進行站內優化和修復(網站Web結構調整、網站內容建設、網站

前後分離mockjs基本介紹

body pos mock 響應 func 正則 str 整數 fun 安裝與使用 # 安裝 npm install mockjs #使用 Mock var Mock = require(‘mockjs‘) var data = Mock.mock({ // 屬性

前後分離VueJS前端

程式碼:https://github.com/jimolonely/vue-jwt-demo 前言 前端用什麼框架都可以,這裡選擇小巧的vuejs。 要實現的功能很簡單:  1、登入功能,成功將伺服器返回的token存在本地  2、使用帶token的header訪問伺服器

前後分離Java後

前後端分離的思想由來已久,不妨嘗試一下,從上手開始,先把程式碼寫出來再究細節。 程式碼下載:https://github.com/jimolonely/AuthServer 前言 以前服務端為什麼能識別使用者呢?對,是session,每個session都存在服務端,瀏覽器每次請求都帶著ses

[django]前後分離JWT使用者認證

在前後端分離開發時為什麼需要使用者認證呢?原因是由於HTTP協定是不儲存狀態的(stateless),這意味著當我們透過帳號密碼驗證一個使用者時,當下一個request請求時它就把剛剛的資料忘了。於是我們的程式就不知道誰是誰,就要再驗證一次。所以為了保證系統安全,我們就需要驗證使用者否處於登入狀態。 傳統方

前後分離介面定義滯後帶來的問題

   前言:   目前正參與我司一個後臺管理型專案,我司採取的是前後端分離開發,後端採用dubbo框架提供介面,前端整合egg.js和dubbo.js;各司其職,我和一道友專門負責前端伺服器整個模組,伺服器搭建探索過程費了點時間(也不太多),然後就前端頁面的排期,給我的模組排了

Python前後分離開發Vue+Django REST framework實戰

第1章 課程介紹介紹課程目標、通過課程能學習到的內容、和系統開發前需要具備的知識 1-1 課程導學第2章 開發環境搭建介紹系統開發所需的開發環境的搭建, 包括前後端開發所需要的IDE、 mysql、navicat、nodejs、cnpm的配置等, 還介紹瞭如何配置python虛擬環境 2-1 pychar

前後分離SpringBoot專案Token認證

寫在開始 有人說,愛上一座城,是因為城中住著某個喜歡的人。其實不然,愛上一座城,也許是為城裡的一道生動風景,為一段青梅往事,為一座熟悉老宅。或許,僅僅為的只是這座城。就像愛上一個人,有時候不需要任何理由,沒有前因,無關風月,只是愛了。 —林徽因   前段時間,大體

Django前後分離域名配置

編輯檔案  sudo vim /etc/hosts 將兩個域名新增到檔案中 127.0.0.1 api.xxxx.site 127.0.0.1 www.xxxx2.site  前端xxxx/js目錄中,建立host.js檔案用以為前端儲存後端域名 var h

前後分離VUE+SPRINGBOOT)九 ELEMENT UI

寫頁面,頁面風格,樣式對於我們來說是件 很煩的事,由於現在VUE用的很火,所以網上出了很多對應的元件庫。 而這裡用的element Ui ,餓了嗎出品 git網上星星最多的 具體使用如下: 1,安裝 npm i element-ui -S 2,全域性引用(也

前後分離VUE+SPRINGBOOT)十五 微信移動 企業微信的開發token和jsapi_ticket的存取

呼叫介面很簡單,寫2個方法,先寫一個POST,一個GET, 配置檔案裡配置好 每次需要用token或者是jsapi_ticket的時候,先去資料庫查詢有效的token 如果有則返回需要的token或者jsapi_ticket或者txlaccesstoken, 找不

前後分離VUE+SPRINGBOOT)十七 echarts報表開發

昨天剛好有個人問報表開發問題, 今天就把這個補齊, 所以說VUE好用,基本上用的多的元件都能找到, 圖形報表這個也一樣,話不多說, 1,安裝  npm install vue-echarts -S 2,引入 main.jsp   import VCharts

前後分離VUE+SPRINGBOOT)十七 後臺介紹

因為我本身是做後端開發的,感覺SPRINGBOOT沒什麼 好說的,無非就是正常的開發,我的專案結構如下: 專案大體分層是,PC端或者微信端通過HTTP/JSON的方式提交資料,開發時 通過nodejs的動態反向代理,部署時用NGINX反向代理請求到我的後端。 後端

基於小程式開發的前後分離登入狀態

公司接了一個小程式的活。本來後臺想用的是session儲存登入狀態。後來發現登入存進去的sessionId和取時候的sessionId不一樣,匯入無法取到登入狀態,百度了一下才知道,原來是小程式端不支援儲存cookie,後來想到了在微信登入授權後,把openId加密(token),當做key,ope

前後分離_後_分類導航功能_就是_三級分類,表是無限極的設計

需求: 1. 資料庫 設計原則:無限極分類 2, 介面 3,實現 3.1 pojo 3.2, dao 我用的是mybatis 3.3,service 用的example多條件查詢 public List<Categ

【spring boot】https 前後分離 跨域請求

一·專案背景  後端 基於 spring boot搭建,所有的請求做了 https ,開始並沒有做前後端分離,因為前後端分離是大勢所趨, 不管以後後端開發 是否 會替代 前端開發,前後端分離會越來越流行。 所以準備把專案做成前後端分離,沒想到第一步就遇到了跨域請求的坑。如果

springboot前後分離跨域

springmvc有多種處理跨域的方法,介紹最簡單的一種: @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void addCors