<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • Vue跨域解決方法

    2023-3-31    前端達人

    vue項目中,前端與后臺進行數據請求或者提交的時候,如果后臺沒有設置跨域,前端本地調試代碼的時候就會報“No 'Access-Control-Allow-Origin' header is present on the requested resource.” 這種跨域錯誤。

    要想本地正常的調試,解決的辦法有三個

    一、后臺更改header

    header('Access-Control-Allow-Origin:*');//允許所有來源訪問
    header('Access-Control-Allow-Method:POST,GET');//允許訪問的方式

    這樣就可以跨域請求數據了

    二、使用JQuery提供的jsonp (注:vue中引入jquery,自行百度)

    methods: {
    getData () {
    var self = this
    $.ajax({
    url: 'http://f.apiplus.cn/bj11x5.json',
    type: 'GET',
    dataType: 'JSONP',
    success: function (res) {
    self.data = res.data.slice(0, 3)
    self.opencode = res.data[0].opencode.split(',')
    }
    })
    }
    }

    通過這種方法也可以解決跨域的問題。

    三、使用http-proxy-middleware 代理解決(項目使用vue-cli腳手架搭建)

    例如請求的url:“/business/remind/user”
    1、打開vue.config.js.js,在proxy中添寫如下代碼:

    // 運行配置
    devServer: {
    port: '9527', //代理端口
    open: false, //項目啟動時是否自動打開瀏覽器,我這里設置為false,不打開,true表示打開
    proxy: {
    '/api': {
    target: process.env.VUE_APP_HTTP_URL,
    changeOrigin: true, //是否跨域
    pathRewrite: { //重寫路徑
    '^/api': '/' // 或 者 'http://localhost:8080/api'
    }
    // 既然我們設置了代理,則所有請求url都已寫成/api/xxx/xxx,那請求如何知道我們到底請求的是哪個服務器的數據呢
    // 因此這里的意義在于, 以 /api開頭的url請求,代理都會知道實際上應該請求那里,
    // ‘我是服務器/api’,后面的/api根據實際請求地址決定,即我的請求url:/api/test/test,被代理后請求的則是
    // https://我是服務器/api/test/test
    }
    }
    },

    附帶vue.config.js下的代碼

    const chalk = require('chalk')
    const path = require('path');
    function resolve (dir) {
    return path.join(__dirname, dir)

    }
    module.exports = {
    // 沒有書寫outputDir屬性 默認'dist' 對應dev.assetsSubDirectory
    outputDir: 'dist',
    // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
    // compiler: false,
    //在vue-cli.3.3版本后 baseUrl被廢除了,因此這邊要寫成 publicPath ( 資源地址 )
    publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_PUBLICPATH : '/' ,
    // css相關配置
    css: {
    // 是否使用css分離插件 ExtractTextPlugin
    extract: true,
    // 開啟 CSS source maps?
    sourceMap: false,
    // css預設器配置項
    loaderOptions: {}
    // 啟用 CSS modules for all css / pre-processor files.
    // modules: false
    },
    // 運行配置
    devServer: {
    port: '8222', //代理端口
    open: false, //項目啟動時是否自動打開瀏覽器,我這里設置為false,不打開,true表示打開
    proxy: {
    '/api': {
    target: process.env.VUE_APP_HTTP_URL,
    changeOrigin: true, //是否跨域
    pathRewrite: { //重寫路徑
    '^/api': '/' // 或 者 'http://localhost:8080/api'
    }
    // 既然我們設置了代理,則所有請求url都已寫成/api/xxx/xxx,那請求如何知道我們到底請求的是哪個服務器的數據呢
    // 因此這里的意義在于, 以 /api開頭的url請求,代理都會知道實際上應該請求那里,
    // ‘我是服務器/api’,后面的/api根據實際請求地址決定,即我的請求url:/api/test/test,被代理后請求的則是
    // https://我是服務器/api/test/test
    }
    }
    },
    chainWebpack: config => {
    // 提示輸出的哪個地址
    console.log(chalk.blueBright('\n\n running ' + process.env.VUE_APP_PROJ_NAME + ' : ') +
    chalk.yellowBright(process.env.VUE_APP_HTTP_URL + ' please wait... \n'));
    // 判斷不同環境 做相應處理
    if(process.env.NODE_ENV === 'production') {
    // 測試生產環境, 不壓縮js代碼
    if (process.env.VUE_APP_TITLE === 'alpha') {
    config.optimization.minimize(false)
    }
    }
    //set第一個參數:設置的別名,第二個參數:設置的路徑
    config.resolve.alias
    .set('@',resolve('./src'))
    .set('components',resolve('./src/components'))
    .set('assets',resolve('./src/assets'))
    .set('views',resolve('./src/views'))
    .set('network',resolve('./src/network'))
    //注意 store 和 router 沒必要配置

    config.plugin('html')
    .tap(args => {
    args[0].title = '公募綜合業務平臺'
    return args
    })
    }
    }





    藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~

    希望得到建議咨詢、商務合作,也請與我們聯系01063334945。 



    分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。 



    藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司。

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 午夜欧美精品久久久久久久| 国产91精品黄网在线观看| 国产91在线精品| 亚洲愉拍99热成人精品热久久| 无码AV动漫精品一区二区免费| 国产成人精品白浆久久69| 无码人妻精品一区二| 99久久婷婷国产综合精品草原| 国产精品天天看天天狠| 亚洲av午夜成人片精品电影| 国产精品麻豆VA在线播放| 国产精品爽爽va在线观看网站| 日韩AV无码精品人妻系列| 无码精品人妻一区二区三区影院| 国产精品无码免费专区午夜| 日韩精品无码人妻一区二区三区| 久久久国产精品网站| 久久精品国产第一区二区三区 | 黄床大片免费30分钟国产精品 | 久久精品人人做人人爽97| 亚洲国产精品无码久久久不卡| 精品性影院一区二区三区内射| 亚洲av午夜精品一区二区三区| 精品久久人人爽天天玩人人妻| | 国产精品最新国产精品第十页 | 国产精品免费精品自在线观看| 99久久久精品免费观看国产| 精品蜜臀久久久久99网站| 日韩精品久久久久久免费| 亚洲日韩精品一区二区三区无码| 青青久久精品国产免费看| 四虎国产精品永久地址入口| 香蕉依依精品视频在线播放 | 欧美精品亚洲精品日韩| 亚洲国产精品久久久久久| 亚洲国产精品久久久久婷婷软件| 国产A√精品区二区三区四区| 国产精品无码专区在线观看| 精品中文高清欧美| 午夜精品久久久久久影视777|