webpack + vue 向本地后端发送http请求跨域问题

一、问题描述

前端: webpack + vue + axios

后端: wamp + php

用webpack访问前端页面是需要一个端口的,后端服务器也是需要一个端口的,端口不同,在本地调试接口就出现问题。

二、解决方法(不使用jsonp)

  1)安装   proxy-middleware  插件

     npm install proxy-middleware --save-dev

  2)将项目目录下 build 文件夹下 dev-sever.js 中的 proxyMiddleware 改名为 httpProxyMiddleware,并将此文件中所有 proxyMiddleware 替换为 httpProxyMiddleware,

        并在此文件夹中引入proxy-middleware 插件:

     const proxyMiddleware = require(‘proxy-middleware‘)

  3)注释原来的 proxyMiddleware 创建的 middleware的代码

Object.keys(proxyTable).forEach(function (context) {
  let options = proxyTable[context]
  if (typeof options === ‘string‘) {
    options = { target: options }
  }
  app.use(httpProxyMiddleware(options.filter || context, options))
})

  4)在注释掉的代码后面添加如下代码

app.use(‘/api‘, proxy(url.parse(‘https://example.com/endpoint‘)));
//现在请求 ‘/api/x/y/z‘ 就会转发到 ‘https://example.com/endpoint/x/y/z‘

//示例代码
//this.$axios.post(‘/api/admin/login‘, {username: this.account, password: this.pwd}).then(function (res) {
//     console.log(res)
//})

  

三、参(抄)考(的)链(谁)接(的)

https://www.cnblogs.com/strinkbug/p/5808984.html

前端小白,欢迎交流

时间: 2024-08-04 15:08:54

webpack + vue 向本地后端发送http请求跨域问题的相关文章

解决vue+springboot前后端分离项目,前端跨域访问sessionID不一致导致的session为null问题

问题: 前端跨域访问后端接口, 在浏览器的安全策略下默认是不携带cookie的, 所以每次请求都开启了一次新的会话. 在后台打印sessionID我们会发现, 每次请求的sessionID都是不同的, 既然每次请求都是一个新的会话, 那我们去获取session的时候自然就是null了. 解决办法如下: 环境: vue 2.0 springboot 2.1.6 一.前端部分 1.  在vue引入axios的位置添加以下代码 import axios from 'axios' axios.defau

前后端分离ajax请求跨域问题

解决方案一(服务器端): 1.java语言 如果您使用的mvc框架是spring4.2以上的话,一个@CrossOrigin就可以搞定.将@CrossOrigin加到Controller上,那么这个Controller所有的请求都是支持跨域的,代码如下: @Controller @CrossOrigin public class GreetingController {} 将@CrossOrigin加到请求方法上,那么这个请求是支持跨域的,代码如下 @CrossOrigin @RequestMa

vue中采用axios发送post请求

这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在运用npm install axios的时候就会默认安装qs,因此我们就得将qs引入到axios中,然后需要再通过实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 1 let qs = require

vue使用fetch.js发送post请求java后台无法获取参数值

问题:前台vue使用fetch.js发送post请求后,后台 request.getParameter()无法获取到参数值 思路:查阅后,原因为fetch中头文件Content-type这个Header为application/x-www-form-urlencoded导致request请求中的form data变成request payload 处理办法:后台controller中使用流接受数据后,在进行查询操作既可. vue代码 /** * 获取行业大类 */ export const ha

百万年薪python之路 -- 请求跨域和CORS协议详解

楔子 什么是同源策略 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.当一个浏览器的两个tab页中分别来自127.0.0.1:8000和127.0.0.1:8001的页面,当浏览器的127.0.0.1:8000的tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和127.0.0.1:8000同源的脚本才会被执行.如果非同源,那么在请求数据时,浏览器会在控制台中报一

Vue.js——基于$.ajax实现数据的跨域增删查改

概述 之前我们学习了Vue.js的一些基础知识,以及如何开发一个组件,然而那些示例的数据都是local的.在实际的应用中,几乎90%的数据是来源于服务端的,前端和服务端之间的数据交互一般是通过ajax请求来完成的. 说起ajax请求,大家第一时间会想到jQuery.除了拥有强大的DOM处理能力,jQuery提供了较丰富的ajax处理方法,它不仅支持基于XMLHttpRequest的ajax请求,也能处理跨域的JSONP请求. 之前有读者问我,Vue.js能结合其他库一起用吗?答案当然是肯定的,V

php options 请求跨域

请求跨域,前端发送options请求时,加上一下请求头即可: header("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,O

[php-cookie] cookie 请求跨域,如何共享

cookie 请求跨域的问题, 假设我有两个域名,一个 m.example.com,另一个是 www.example.com . 那么我需要如何设置 cookie 才可以在这两个域名都实现共享呢? // m.example.com & www.example.com 的根域名都是 example.com // 所以在 setcookie 时,我们只需要在指定的 $domain 设置为了该公共的根域名即可,实现两个域名共享访问 cookie 值 // bool setcookie ( string

谷歌浏览器本地调试时调用服务跨域

谷歌浏览器本地调试时调用服务跨域,解决方法: 右键点击谷歌浏览器图标打开属性,设置“目标”,在末尾添加 --disable-web-security --user-data-dir=C:\MyChromeData c盘创建MyChromeData文件夹 然后点击图标打开浏览器即可 原文地址:https://www.cnblogs.com/onlyperfect/p/12418592.html