webpack-dev-server 解决跨域问题

前后端分离开发,用ajax访问后台接口。
第一次解决这个跨域问题,不知道错在那里了。。。
实在是无能为力了。。。。。

js代码

url:'/v1/user/login',
data:"username=" + loginUserName + "&password="+loginUserPassword,
type:'get',
dataType:'json',
success:function(data){
    location.href = "../index/index.html";
},
failure:function(){
    alert("登陆失败!");
}

webpack.config.js 配置是这样写的

    devServer: {
        historyApiFallback: true,
        hot: true,
        inline: true,
        progress: true,
        proxy: {
            '/v1/*': {
                target: 'http://192.xxx.xxx.xxx:8080',//后台接口地址
                changeOrigin: true,
                secure: false,
            }
        }
    },

代码显示:

clipboard.png

用jsonp跨域

js代码


    $.ajax({
                url:'http://192.xxx.xxx.xxx:8080/v1/user/login',
                data:"username=" + this.loginUserName + "&password="+ this.loginUserPassword,
                type:'get',
                dataType:'jsonp',
                jsonpCallback : 'loginCallback',
                success:function(data){
                    location.href = "../index/index.html";
                },
                failure:function(){
                    alert("登陆失败!");
                    console.log("error!");
                }
            });

成功

clipboard.png

阅读 3k
4 个回答

老铁把

url:'/v1/user/login',
data:"username=" + loginUserName + "&password="+loginUserPassword,
type:'get',
dataType:'json',
success:function(data){
    location.href = "../index/index.html";
},
failure:function(){
    alert("登陆失败!");
}

改为

url:'/user/login',
data:"username=" + loginUserName + "&password="+loginUserPassword,
type:'get',
dataType:'json',
success:function(data){
    location.href = "../index/index.html";
},
failure:function(){
    alert("登陆失败!");
}

试试 ;

            
        proxy: {
            '/v1/*': {
                target: 'http://192.xxx.xxx.xxx:8080',//后台接口地址
                changeOrigin: true,
                secure: false,
                pathRewrite: {  
                '^/v1': ''
                }
             }
        }
        改成这样其他不动
参考之前我的文章https://segmentfault.com/a/11...

先确认下要请求的接口, 如果是http://192.xxx.xxx.xxx:8080/v1/user/login
这么写

proxy: {
            '/v1/*': {
                target: 'http://192.xxx.xxx.xxx:8080',//后台接口地址
                changeOrigin: true,
                secure: false,
                pathRewrite: {  
                '^/v1': '/v1'
                }
             }
        }

Request Method 改为 POST,后台接口采用 REST 风格,会指定请求类型。
ajax 请求的配置修改:

type:'post',
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏