vue 處理跨域問題 (“No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.”)


服務端

設置請求頭 允許跨域

 @Override  
    public void doFilter(ServletRequest req, ServletResponse res,  
            FilterChain chain) throws IOException, ServletException {  
            HttpServletResponse response = (HttpServletResponse) res;  
            response.setHeader("Access-Control-Allow-Origin", "*");  //允許所有來源訪問
            response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");  //允許訪問的方式  
            response.setHeader("Access-Control-Max-Age", "3600"); // 超時時長
            response.setHeader("Access-Control-Allow-Headers", "x-requested-with"); // 自定義的頭信息
            chain.doFilter(req, res);  
          
    } 

 

JQuery

添加 dataType: 'jsonp'

jQuery.ajax({
        type: "post",
        url: url,
        dataType: "jsonp",
        jsonp: 'callBack',
        success: function(result) {}
})

 

axios

設置代理

找到config/index.js,在dev(本地)中添加  或者 build(打包線上)中 添加 如下代碼

   // proxyTable: {
    //   '/api': { //進入重新的名稱
    //     target: 'http://192.168.1.217:8083/', // 服務端接口地址
    //     changeOrigin: true, // 是否允許跨越
    //     pathRewrite: {
    //       '^/api': '' // 重寫,
    //     }
    //   },
    // },

 

使用 以 /api 開頭 則會進入proxyTable

 axios.post('/api/crm/appendix/postfile', formdata)
        .then(res => {
          success(
            res.data.data
          )
        })
        .catch(res => {
          failure('error')
        })

 

 


免責聲明!

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



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