关于跨域请求数据的问题

vue-resource 跨域请求

1、客户端:

  (1)在webpack.config.js(config—>index.js)文件里设置代理(可以同时设置多个)

dev: {
    env: require('./dev.env'),
    port: 8080,  //设置访问的端口号
    autoOpenBrowser: true, //自动打开浏览器
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
        '/api': {
            target: 'http://localhost:8888', //设置调用接口域名和端口号别忘了加http
            changeOrigin: true,
            pathRewrite: {
                '^/api': '/' //这里理解成用‘/api’代替target里面的地址,组件中我们调接口时直接用/api代替
                    // 比如我要调用'http://0.0:300/user/add',直接写‘/api/user/add’即可 代理后地址栏显示/
            }
        }
    }
  ...

  (2)在组件中编辑(下面是POST方法,GET方法也一样)

this.$http.post("http://localhost:8888/login?user=blue&pass=123456")
      .then(function(response) {
        console.log("成功");      
        console.log(response.body);
      }, function(response) {
        console.log("失败");
        console.table(response);
      });

//或者使用axios(记得安装和引入axios模块)
import axios from "axios"
axios.get("api/login?user=blue&pass=123456")
      .then(function(response) {
        console.log("成功");      
        console.log(response.data);
      }, function(response) {
        console.log("失败");
        console.table(response);
      });

 

2、服务端:

  nodeJS 用express作为服务端

server.use('/login', function (req, res){
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header('Access-Control-Allow-Headers', 'Content-Type');
   ...

 

posted @ 2018-09-19 14:38  0恋晨曦0  Views(128)  Comments(0Edit  收藏  举报