在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ HTML問答
柒喵 回答

CSRF庫官方文檔的例子修修改改就行了。

CSRF防護(hù)流程

  1. 服務(wù)端:Express返回前端頁面時,在頁面上注入CSRF token。
  2. 瀏覽器端:頁面請求服務(wù)端接口,帶上服務(wù)端返回的CSRF token。

服務(wù)端代碼

服務(wù)端代碼:

var cookieParser = require('cookie-parser')
var csrf = require('csurf')
var bodyParser = require('body-parser')
var express = require('express')

// 模板
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');


// CSRF中間件初始化
var csrfProtection = csrf({ cookie: true })

// create express app
var app = express()

// cookie解析
app.use(cookieParser())

// 解析參數(shù)
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// CSRF防護(hù)
app.use(csrfProtection) 

// 訪問頁面,生成CSRF token,并注入頁面
app.get('/index', function (req, res, next) {
  res.render('index', { csrfToken: req.csrfToken() })
})

// 請求接口,解析請求參數(shù),獲取CSRF token,進(jìn)行校驗(中間件完成的)
app.post('/api', function (req, res) {
  res.send('你的處理結(jié)果')
})

模板代碼

預(yù)留了CSRF token的位置。

<html>
  <head>
    <title>CSRF防護(hù)</title>
  </head>
  <body>
    <h1>CSRF防護(hù)</h1>
    <p id="csrf-token"><%= csrfToken %></p>
  </body>
</html>

客戶端請求

發(fā)請求時,把csrfToken加到請求參數(shù)里去就行。這里略過

萢萢糖 回答

找到了,toFixed()會自動四舍五入...

挽青絲 回答

sessionStorage 頁面刷新不消失 關(guān)閉瀏覽器消失
localStorage 瀏覽器關(guān)閉不消失
只要存儲登錄狀態(tài)
根據(jù)需求看用哪個
可以找下vuex 插件 關(guān)于localStorage 的 插件很簡單 改成sessionStorage 只要換個名字

不討囍 回答

。因為進(jìn)入error后又判斷了一次 又跳進(jìn)error 無限循環(huán)了 條件判斷那把to到error的情況排除

祈歡 回答
  • 首先,這跟 HTTP 協(xié)議沒直接關(guān)系,只是瀏覽器行為而已。
  • 其次,搞清楚這些瀏覽器行為,并沒有什么卵用。因為緩存什么的,你只需要考慮普通用戶的操作就好了,普通用戶是不會打開調(diào)試窗口的。
  • 再次,你看的鳥哥的文章都是 10 年的啦,瀏覽器也會變的啊。
萢萢糖 回答

“閱讀”和“分析”代碼才能實現(xiàn)類似VS的“Find All Reference”類似的功能。否則就算你每次實例化都把對象存入一個數(shù)組,你也只能得到被引用的對象,而沒法找到ws1ws2,因為它們只是一個指向一個對象的指針

毀與悔 回答
<template>
  <div>
     <div class = "food">
      <div class="fooList">
        <ul v-for="(item,index) in goods">
        <li v-for="food in item.foods" v-show="name==item.name">
          <span>{{index}}{{food.name}}</span>
        </li>
          </ul>
      </div>
    </div>
  <div class="navMenu">
    <ul>
       <li v-for="(item,index) in goods" :class="isSelected == index?'navMenu-selected':'nav'" @click = 'menuClick(item.name,index)'>
          <span class="text">
            
            {{item.name}}
          </span>
        </li>
    </ul>
    
  </div>
 
 </div>
</template>

<script>
import axios from 'axios'
import Vue from 'vue'
export default {
  name: 'navMenu',
   created() {
    axios.get('static/data.json').then((res) => {
      console.log(res.data.goods)
      this.goods = res.data.goods
      
    });
  },
  data() {
    return {
      goods: [],
      isSelected:0,
      selectedFood: '',
      name:"food"
    }
  },
  computed:{
    // selectFoods() {
    //   let foods = []
    //   this.goods.forEach((good) => {
    //     good.foods.forEach((food) => {
    //       if (food.count) {
    //         foods.push(food)
    //       }
    //     })
    //   })
    //   return foods
    // }
  },

  methods:{
    menuClick (name,index) {
 this.isSelected = index 
this.name=name
    }
  }
}
</script>
話寡 回答

使用快捷接ctrl+] 向右縮進(jìn)一下就解決了

傲寒 回答

不重啟怎么生效……
還是用 nodemon 吧

礙你眼 回答

看文檔

<template slot-scope="scope">{{ scope.row }}</template>

吢涼 回答

你試下這個例子:
html:

<div>
    <video ref="video" width="320" height="320" autoplay></video>
    <input type="button" style="width:100px;height:35px;" value="拍 照" @click="takePhoto"/>
</di>
    <canvas style="" ref="canvas" width="320" height="320"></canvas>
</div>

主要的js:

getVideo(){
   this.$nextTick(() => {           
                    
        var video = this.$refs.video;  //這個對應(yīng)的是ref屬性
        var videoObj = { "video": true };

        navigator.mediaDevices.getUserMedia(videoObj)
        .then(function(mediaStream) { 
            video.srcObject = mediaStream;
            video.play();
            })
        .catch(function(error) {
            console.log(error);
        })

   })
},
takePhoto(){
    this.$nextTick(() => { 
        this.context = this.$refs.canvas.getContext("2d")
        this.context.drawImage(this.$refs.video, 0, 0, 330, 250);
    })
}

如果需要click事件還是用@click形式吧。。

有點壞 回答

關(guān)閉dialog框的時候清空就可以了。

@close="loginDialog=false,resetForm('loginForm')" 

resetForm(formName) {
  this.$refs[formName].resetFields();
}

上面的代碼是我在elementUI上的做法。

瞄小懶 回答

其實只要業(yè)務(wù)流程能用就行,一些不影響或者看不出的報錯就懶得處理了

我覺著你可能不是相對路徑,相對路徑默認(rèn)的圖片路徑都會被編譯

檢查以下是不是圖片路徑寫的是/img/pic1.jpg

巴扎嘿 回答

clipboard.png
chrome瀏覽器容錯性高,有的頁面錯誤它會容忍你
但是在手機上,容錯率低,可能一個小小的錯誤,它就不讓你的后續(xù)代碼執(zhí)行,造成頁面出錯

笨笨噠 回答

ES6箭頭函數(shù):http://es6.ruanyifeng.com/#do...

上面代碼中,原始意圖是返回一個對象{ a: 1 },但是由于引擎認(rèn)為大括號是代碼塊,所以執(zhí)行了一行語句a: 1。這時,a可以被解釋為語句的標(biāo)簽,因此實際執(zhí)行的語句是1;,然后函數(shù)就結(jié)束了,沒有返回值。

終相守 回答

微信開發(fā)者工具不支持vue文件
你可以把微信開發(fā)者工具當(dāng)成chorme瀏覽器一樣來理解,只是一個用戶代理(即顯示網(wǎng)站用)
用其他開發(fā)工具,比如webstorm開發(fā),然后在微信開發(fā)者工具中打開編譯后的dist目錄就行了

心癌 回答

關(guān)鍵代碼你沒貼, setStore和 getStore

寫榮 回答

因為geocoder.getAddress()是異步的。