账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    求教,前端跨域请求服务端方法,自己尝试的方法不起作用
    40
    0

    我现在的项目是使用 webpack + express 做前端开发环境

    想通过代理解决跨域访问服务端接口

    我尝试的使用的方法是http-proxy-middleware代理转发,
    获取http://www.abc.com/(公网域名)下的数据接口,

    本地请求:

    $.ajax({
       method: "GET",
       url: 'api/baseData/getSections',
       data: {},
       success: function(data){
           console.log(data);
      }
    })

    请求后返回的是404,通过浏览器访问http://www.abc.com/baseData/g... 是没有问题的

    本地项目启动的端口号是3000

    dev-server.js 配置代码:

    const base          = require('../config/webpack/base/base'),
          files         = require('../config/webpack/base/files'),
          webpackConfig = require('../config/webpack/webpack.dev'),
          proxy = require('http-proxy-middleware'),
          express       = require('express'),
          webpack       = require('webpack');
    
    const app = express();
    // Apply gzip compression
    //const compress      = require('compression')
    //app.use(compress());
    
    /** -----------------------------------
     * Apply Webpack HMR Middleware
     * */
    if (process.env.NODE_ENV === 'development') {
      const compiler = webpack(webpackConfig);
      
      app.use(require('webpack-dev-middleware')(compiler, {
        publicPath: files.cdnPath,
        quiet     : true,
        stats     : {colors: true}
      }));
      
      app.use(require('webpack-hot-middleware')(compiler));
        
        app.use('/', express.static(files.buildPath));
        
        app.use('/', express.static(files.staticPath));
    
      var middleWareMap = [
        proxy('/api', { target:'http://www.abc.com/' , changeOrigin: true }),
      ];
    
      app.use(middleWareMap);
    
      app.listen(base.devPort, () => {
        console.log(`open localhost:${base.devPort}`);
      });
    }
    else {
      console.log(
        `Server not being run of live development mode,
          Please use the NODE_ENV=development mode to run`
      );
    }
    
    module.exports = app;

    上述问题查过一些资料,还是不得要领,不知道问题的根源在哪里

    还有一个问题,服务端的测试环境访问地址是配置到一个内网ip中,通过host指向一个域名(比如http://www.17xueba.com

    能否通过上述的配置来获取服务端的测试环境数据,如何进行配置

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 赛萌 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部