1)使用 AjaxPlugin 插件(在组件里使用)

引入插件

import { AjaxPlugin } from 'vux'

初始化

export default {
components: {
AjaxPlugin
},
data () {
return {
}
}
}

封闭一个方法方便调用(正式使用时,你应该还需要计算签名之类的操作)

function htttpRequest (url, params, cb) {
let dataStr = ''
for (let key in params) {
dataStr += key + '=' + params[key]
}
dataStr = dataStr.substr(0, dataStr.length - 1) AjaxPlugin.$http.post(url, dataStr)
.then((response) => {
if (cb) cb(response.data)
})
}

使用示例

export default {
components: {
AjaxPlugin
},
data () {
return {
articleList: this.getArticleList(1)
}
},
methods: {
getArticleList: function (catId) {
let _this = this htttpRequest('/api', {method: 'article.getList', 'catId': catId}, function (data) {
_this.articleList = data.Result.ArticleList
})
return []
}
}
}

这里示例写的是初始化时,默认调用一次,你可以在相应的按钮上点击事件再调用此函数

2)关于跨域(用nodejs代理转发请求)

如果你有注意,应该会发现,上面请求写的 url 是 '/api' ,这不是一条确切的接口地址,假设你的域名为 http://localhost:8080,那么它请求的地址即为 http://localhost:8080/api

这个 /api 默认是不存在的,现在我们配置一下 nodejs ,让它为我们转发请求

假设,我需要请求的接口的入口为 http://www.xxx.com/api

修改 /config/index.js 配置文件,修改 dev 选项下 proxyTable 的值为如下

proxyTable: {
'/api': {
target: 'http://www.xxx.com/',
changeOrigin: true
}
},

PS:这里使用的是一个叫 http-proxy-middleware 的 nodejs 中间件,系统已默认为我们集成,直接配置就好了

上面的配置的意思是:遇到以 '/api'开关的 http 请求,自动转化到 target (目标)url 地址去,实际请求地址就是 target + '/api'

需要注意的是,假设,你需要请求的接口的入口为 http://www.xxx.com/rest,而代码里请求的 url 写的是 '/api',则你需要使用 pathRewrite 来进行路径重写,而不是直接改 traget

proxyTable: {
'/api': {
target: 'http://www.xxx.com/',
changeOrigin: true,
pathRewrite: {
'^/api': '/rest'
}
}
},

下面是一个错误示范

proxyTable: {
'/api': {
target: 'http://www.xxx.com/rest',
changeOrigin: true
}
},

这里实际请求的地址为:http://www.xxx.com/rest/api,很明显是错误的(当然,你也可以使用 pathRewrite 把 '/api' 改成 '',也是可以的)


vux ajax请求 及 跨域的更多相关文章

  1. ajax请求ashx跨域问题解决办法

    ajax请求ashx跨域问题解决办法 https://blog.csdn.net/windowsliusheng/article/details/51583566 翻译windowsliusheng  ...

  2. AJAX请求和跨域请求详解(原生JS、Jquery)

    一.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数 ...

  3. 解决ajax请求cors跨域问题

    ”已阻止跨源请求:同源策略禁止读取位于 ***** 的远程资源.(原因:CORS 头缺少 'Access-Control-Allow-Origin').“ ”已阻止跨源请求:同源策略禁止读取位于 ** ...

  4. Ajax请求,跨域小坑

    今天在上班的时候,被坐在旁边项目经理叫过去问了一个Ajax请求跨域的问题,一开始没理解清楚也还有对这个没有理解的透,后面被打击的要死. 当时的需求是需要测试一个已发布的api接口,需要在本地写测试程序 ...

  5. 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. SpringMVC处理ajax请求的跨域问题和注意事项

    .首先要知道ajax请求的核心是JavaScrip对象和XmlHttpRequest,而浏览器请求的核心是浏览器我的个人博客(基于SSM,Redis,Tomcat集群的后台架构) github:htt ...

  7. jQuery解决ajax请求的跨域问题

    这两天工作中频繁的遇到JS的跨域问题,都通过绕开ajax请求的方式.特地百度了一下,把跨域问题解决了.在这分析一下 首先贴上js的页面代码: <html> <head> < ...

  8. Asp.Net Core 3.0 学习3、Web Api 文件上传 Ajax请求以及跨域问题

    1.创建Api项目 我用的是VS2019 Core3.1 .打开Vs2019 创建Asp.Net Core Web应用程序命名CoreWebApi 创建选择API 在Controller文件夹下面添加 ...

  9. Ajax请求WebService跨域问题 [转载]

    1.背景 用Jquery中Ajax方式在asp.net开发环境中WebService接口的调用 2.出现的问题 原因分析:浏览器同源策略的影响(即JavaScript或Cookie只能访问同域下的内容 ...

随机推荐

  1. WebRTC网关服务器单端口方案实现

    标准WebRTC连接建立流程 这里描述的是Trickle ICE过程,并且省略了通话发起与接受的信令部分.流程如下: 1) WebRTC A通过Signal Server转发SDP OFFER到Web ...

  2. 微信小程序的json遍历

    入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉. <view wx:for="{{items}}&q ...

  3. webpack7--css压缩成单独的css文件

    先看下下面的图片: 我们可以看到,通过Webpack打包后,默认CSS是通过 内部样式表 写入的.我们如何把压缩后的CSS单独导出为CSS 呢? 1.安装 extract-text-webpack-p ...

  4. jquery跨域访问解决方案

    客户端“跨域访问”一直是一个头疼的问题,好在有jQuery帮忙,从jQuery-1.2以后跨域问题便迎刃而解.由于自己在项目中遇到跨域问题,借此机会对跨域问题来刨根问底,查阅了相关资料和自己的实践,算 ...

  5. 使用 js替换网页中的关键词为链接

    要求把一段html脚本中的疾病名添加到疾病库的链接,只添加一次,要避开超链接或图片链接. 最初是用的    str.replace('糖尿病', '<a href=...>糖尿病</ ...

  6. ADO.NET实体数据模型中关于数据库字段默认值的处理

    无论是Visual Studio 2010或者2013内置的ADO.NET实体数据模型都有一个小问题:数据库中有些字段已设置了默认值,但ADO.NET实体数据模型工具并不会自动进行设置. 这时需要手工 ...

  7. QIODevice (Qt中所有 I/O devices 的基类,QFile,QBuffer,QTcpSocket等)

    QIODevice是所有Qt I/O设备的基类,它提供了对支持块读写设备(例如QFile,QBuffer,QTcpSocket)的通用实现和抽象接口.QIODevice是一种抽象,不能被实例化,但是, ...

  8. ps常用快捷键

    一. 二. 三.

  9. Linux之计划任务

    计划任务特性 1. 需要在指定的某时间段运行 2. 需要将任务结果邮件通知用户 3. 单次任务及循环任务区别 Linux计划任务的实现工具 1. at工具 其只能执行一次性任务 其会自动加载部分环境变 ...

  10. Android wifi powersave

    使用高通平台的查看power save的功能. 一般是控制WCNSS_qcom_cfg.ini文件的两个参数gEnableBmps,gEnableImps. BMPS: Beacon mode pow ...