码迷,mamicode.com
首页 > 其他好文 > 详细

CORS跨域问题

时间:2019-12-30 23:24:28      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:https   toc   console   ons   应用端   dex   自身   全局   ddl   

axios

  • 就是Vue的ajax插件

安装#

Copy在vue项目文件下安装 cnpm install axios

配置#

  • 为vue项目全局配置axios
Copyimport Axios from axios
// 添加ajax原型(类属性)
Vue.prototype.$ajax = Axios

使用#

Copylet _this = this
this.$ajax({
    // 后端提交地址
    url: 'http://127.0.0.1:8000/loginAction',
    method: 'post',    
    params: {
        username: this.username,
        password: this.password
    }
}).then(function(response) {
    // this代表的是回调then这个方法的调用者(axios插件),也就是发生了this的重指向
    // 要更新页面的title变量,title属于vue实例
    // response为回调的对象,该对象的data属性就是后台返回的数据
    _this.title = response.data
}).catch(function(error) {
    window.console.log(error)
})


// 回调函数也可以使用箭头函数的形式, 而回调函数自身是没有this的
this.$ajax({
    // 后端提交地址
    url: 'http://127.0.0.1:8000/loginAction',
    method: 'post',    
    params: {
        username: this.username,
        password: this.password
    }
}).then((response) => {
   
    this.title = response.data
}).catch((error) => {
    window.console.log(error)
})

CORS跨域问题

  • Cross-Origin Resource Sharing (CORS)
  • 同源: http协议相同, ip服务器地址相同, 应用端口相同
  • 跨域: 上面三个有一个不同
  • django默认是响应同源请求

解决django跨域问题#

  • 安装cors模块
  • 注册app
  • 添加中间件
  • 开启跨域
Copy"""
1)Django按照cors模块:    
    >: pip install django-cors-headers


2)在settings注册模块,配置中间件:    
    INSTALLED_APPS = [
        ...
        'corsheaders'
        ] 
    
    
3) 添加中间件
    MIDDLEWARE = [
        ...       
        'corsheaders.middleware.CorsMiddleware'    
        ]

    
4)在settings开启允许跨越:    
    CORS_ORIGIN_ALLOW_ALL = True

"""

aixos提交数据

  • 拼接参数 (任何请求)
    • params
  • 数据包参数 (get请求无法携带)
    • data

Vue配置ElementUI

Copy"""
1)安装插件(一定要在项目目录下):
    >: cnpm install element-ui
    
2)在main.js中配置:
    import ElementUI from 'element-ui';
    import 'element-ui/lib/theme-chalk/index.css';
    Vue.use(ElementUI);
    

3)使用:
    复制粘贴
    
"""

Vue配置BootStrap

  • 先安装jQuery
Copy>: cnpm install jquery
  • vue/cli 3 配置jQuery:在vue.config.js中配置(没有,手动项目根目录下新建)
Copyconst webpack = require("webpack");

module.exports = {
    configureWebpack: {
        plugins: [
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery",
                "window.jQuery": "jquery",
                Popper: ["popper.js", "default"]
            })
        ]
    }
};
  • 安装BootStrap
Copy>: cnpm install bootstrap@3
  • vue/cli 3 配置BootStrap:在main.js中配置
Copyimport "bootstrap"
import "bootstrap/dist/css/bootstrap.css"

CORS跨域问题

标签:https   toc   console   ons   应用端   dex   自身   全局   ddl   

原文地址:https://www.cnblogs.com/1012zlb/p/12121956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!