axios如何进行跨域以及对返回格式为回调函数字符串的处理

自从vue2.0开始不对vue-resouce进行维护了,转而用axios进行代替,axios的官方文档写的很详细,附上链接一枚:http://www.jianshu.com/p/df464b26ae58

但是,我看完以后有一个疑问,跨域请求呢?where(黑人问号脸),在vue-resouce里面还有http.jsonp进行jsonp的跨域,但是axios,经过询问,是需要开代理才可以。

首先,我们需要在webpack的config的index里面进行代理设置:

添加如下代码:

‘/api’指代的是,如果我们想要跨域,可以使用/api来代替‘http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg‘这个接口,剩下的选项什么意思看注释

那么,我们怎么来使用呢,看图:

此时我们已经可以进行跨域请求了,如果还是无法进行跨域,那就需要后台小哥哥的配合了,让他在后台中开启跨域,我之前博客里面写过后台跨域的方法:http://www.cnblogs.com/mmykdbc/p/8024105.html

好,看一下效果:

是一个字符串,那么我们用平常的JSON.parse来转换是行不通的,因为这是一个回调函数,那么我们如何进行转换呢,网上查了许多方法,原生js或者jq都没有对回调函数做处理,所以我只能在str方面下手,我可以截取{}里面的内容啊,那样在进行转换就可以了,说半就办,代码如下:

完美得到数据:

记得,配置完成之后一定要进行重启项目,配置完成之后一定要进行重启项目,配置完成之后一定要进行重启项目;重要的事情说三遍!!!!

原文地址:https://www.cnblogs.com/mmykdbc/p/8136191.html

时间: 2024-10-11 15:20:31

axios如何进行跨域以及对返回格式为回调函数字符串的处理的相关文章

Vue中如何使用axios发送jsonp跨域验证

https://cnodejs.org/topic/5930430f03dba3510d8a62c6 在使用axios发送请求时,服务器端设置 res.header("Access-Control-Allow-Origin", "*");可以正确得到结果 当服务器端不设置允许跨域时,使用jsonp方式发送就不行了,提示错误如下 XMLHttpRequest cannot load http://localhost:3000/axios?cb=cb. No 'Acce

iframe无刷新跨域并获得返回值

参考:http://geeksun.iteye.com/blog/1070607 /** * iframe跨域提交大数据 * @param action 跨域地址 * @param arr [ {name:'loginName',value:'liuxw'}, {name:'password',value:'123456'} ] * @param callUrl 服务器重定向该url指向画面.(callUrl所指向画面与IframCall函数调用画面在同一域名下) */function Ifra

解决跨域HttpResponseJsonCORS, HttpResponseCORS 返回字典数据

#!/usr/bin/python # -*- coding: UTF-8 -*- import json from django.http import HttpResponse def HttpResponseJsonCORS(request,s): response = HttpResponse(s,content_type="application/json") try: origin = request.META['HTTP_ORIGIN'] except: origin =

ajax跨域传输(jsonp格式)

先抛个列子,转载自http://www.cnblogs.com/xcxc/p/3729660.html test.html <!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title> <script src="jquery-1.5.2.min.js"></script> <scri

AngularJS实现跨域请求

跨域,前端开发中常常遇到的问题.AngularJS实现跨域方式类似于Ajax.使用CORS机制. 以下阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpRequest:$http用于读取远程server的数据 $http.post(url, data, [config]).success(function(){ ... }); $http.get(url, [config]).success(function(){ ... }); $http.get

AngularJS的$http的跨域问题

了解了angularjs的$http方法的本质跟jquery ajax方法是一样的,就开始担心跨域的问题,以前开发工作紧张,遇到了也把跨域问题放下,毕竟做的传统web开发,后端提供的接口和前端都会发布在一个服务器上,现在做的项目大了,自然遇到一些团队只负责发布API,而我们团队只能去调用,跨域肯定是不可跳过的步骤啦. 没想到这么一了解居然有这么多跨域的方法,也不知道可行不可行!先当时mark了吧 一.$http.jsonp[实现跨域] 1. 指定callback和回调函数名,函数名为JSON_C

angular.js跨域post解决方案

跨域,前端开发中经常遇到的问题,AngularJS实现跨域方式类似于Ajax,使用CORS机制. 下面阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpRequest:$http用于读取远程服务器的数据 $http.post(url, data, [config]).success(function(){ ... }); $http.get(url, [config]).success(function(){ ... }); $http.get(ur

详细梳理ajax跨域4种解决方案

前言 自动接触前端,跨域这个词就一直萦绕在耳畔.因为一般接手的项目都已经做好了这方面的处理,而且之前一直感觉对这方面模棱两可,所以今天就抽个时间梳理一下. 为什么需要跨域 跨域这个概念来自一个叫 "同源策略" 的东西.同源策略是浏览器(注意是浏览器,跟通信协议无关)上为了安全考虑实施的非常重要的安全机制. Ajax 默认只能获取到同源的数据,对于非同源的数据,Ajax是获取不到的. 什么是同源? 协议相同 域名相同 端口相同 举例来说,http://www.example.com/di

Vue之Axios跨域问题解决方案

// axios 中的GET请求 axios.get('/user', { params: { ID: '001' } }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); // axios 中的POST请求 axios.post('/user', { firstName: '1', lastName: '2' }) .then(func