Vue.js2 + Laravel5 采用 CORS 方式解决 AJAX 跨域的问题
一、建立中间件
php artisan make:middleware CorsAjax
二、编写中间件 CorsAjax
<?php
namespace App\Http\Middleware;
use Closure;
class CorsAjax
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: *");
header("Access-Control-Allow-Headers: Content-Type,Access-Token");
header("Access-Control-Expose-Headers: *");
return $next($request);
}
}
三、注册中间件 Kernel.php
protected $routeMiddleware = [
'authorize' => \App\Http\Middleware\authorize_middleware::class,
'common' => \App\Http\Middleware\common::class,
'cors' => \App\Http\Middleware\CorsAjax::class,
];
四、在路由中应用中间件
/**
* API 调用
*/
Route::group([
'middleware' => ['cors'],
'prefix' => 'api',
], function () {
Route::any('/', function () {
$result = [
'App' => '回家吃饭',
'Version' => '1.0.1'
];
return $result;
});
Route::any('/cab/getpagelist', function () {
$cab = new \App\cab();
$params = $_GET;
$result = $cab->getpagelist($params);
return response($result, 200);
});
});
五、运行后端 Laravel http服务
假设域名为 foo.com
六、运行前端 http 服务
npm run dev
七、可以在组件中 (.vue)使用 AJAX 跨域访问了
代码如下:
getDataRemote: function () {
let self = this;
let url = 'http://foo.com/api/cab/getpagelist';
let params = {
field: self.field,
keyword: self.keyword
};
this.$axios
.get(url, {
params: params
})
.then(function (response) {
let data = response.data;
if (data.total > 0) {
self.page += 1;
self.cabData.rows = _.union(self.cabData.rows, response.data.rows);
}
});
},
Vue.js2 + Laravel5 采用 CORS 方式解决 AJAX 跨域的问题的更多相关文章
- 如何解决 ajax跨域被阻止 CORS 头缺少 'Access-Control-Allow-Origin'的问题?
已拦截跨源请求:同源策略禁止读取位于 http://192.168.1.72:8080/securityMonitor_TV/service/getTest 的远程资源. (原因:CORS 头缺少 ' ...
- 如何解决ajax跨域问题(转)
由 于此前很少写前端的代码(哈哈,不合格的程序员啊),最近项目中用到json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决 ajax的跨域问题.本篇将讲述一个小白从遇到跨域不 ...
- 看小白如何解决ajax跨域问题
由于此前很少写前端的代码(哈哈,不合格的程序员啊),最近项目中用到json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决ajax的跨域问题.本篇将讲述一个小白从遇到跨域不知道 ...
- 如何解决ajax跨域问题
如何解决ajax跨域问题(转) 由 于此前很少写前端的代码(哈哈,不合格的程序员啊),最近项目中用到json作为系统间交互的手段,自然就伴随着众多ajax请求,随之而来的就是要解决 ajax的跨域问题 ...
- e3mall商城总结11之sso系统的分析、应用以及解决ajax跨域问题
说在前面的话 一.sso系统分析 什么是sso系统 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次 ...
- 如何解决Ajax跨域问题-1
如何解决Ajax跨域问题 最近在做AJAX调用C的问题,出现跨域问题,学习总结如下: 在做ajax读取数据的时候,经常会遇到ajax需要跨域的问题,但由于浏览器安全方面的限制,XMLHttpReque ...
- 解决ajax跨域问题的一种方法
解决ajax跨域问题的一种方法 前后端分离经常用json来传输数据,比较常见的问题就有ajax跨域请求的错误问题,这里是我的一种解决方法: 在java中加入如下的注解类: import org.spr ...
- 【前端_js】解决ajax跨域请求数据
1.ajax发送请求必须遵循同源策略,即请求方和相应方的协议头.域名.端口全部一样.只要三者有一个不一样都视为跨域,浏览器出于安全考虑不允许跨域访问. 解决ajax跨域访问的常用方法: a.使用jso ...
- 谷歌浏览器解决ajax跨域问题
在用mui和H5+做混合开发,会利用HBuildx去真机调试,可真机调试总有问题所在,懂得人自然懂,而我们直接打开页面显示的只有一个静态的页面,是获取不到数据的在这里我想说的不是代码中利用jsonp, ...
随机推荐
- 有关Firefox/Chrome的问题汇总
安装的附加组件因未经验证而被 Firefox 禁用,我该怎么办 如果您已安装的附加组件因未经验证而被禁用了,建议您联系附加组件开发者或提供给您附加组件的人,看看他们能不能提供新版经过验证的附加组件.您 ...
- linux教程
linux视频教程:尚观 http://www.uplinux.com/shipin/linuxyong-hu-guan-li-zhi-yong-hu-guan-li-01 一,linux开机(cen ...
- leetcode345
public class Solution { public string ReverseVowels(string s) { var str = s.ToList(); var Vowels = n ...
- leetcode202
public class Solution { private int SumSqares(int n) { //将一个数字的各个数位的值分开存储 var list = new List<int ...
- Gradle Maven部署,转化
参考:(易百教程)http://www.yiibai.com/gradle/gradle_deployment.html 目录: Gradle部署 Maven转化为Gradle Gradle部署: c ...
- websocket使用
兼容性介绍 : https://caniuse.com/#search=websockets var websocket = null; //判断当前浏览器是否支持WebSocket if ('Web ...
- tensorflow UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
tensorflow读取图像出现错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid s ...
- Enum学习中的compareTo方法分析
今天看工厂模式的时候里面用了枚举定义各种可能的实例类型,就看了一下枚举,发现里面有一个compareTo(E o)方法 通过Object的getClass()方法比较两个两个比校对象类型是否一致,如果 ...
- sqlserver字符串拆分函数
CREATE FUNCTION f_splitSTR(@s varchar(8000), --待分拆的字符串@split varchar(10) --数据分隔符)RETURNS @re TABLE(c ...
- Spring Boot中启动HTTPS
一,生成https 的证书 1,在相应的根目录下 keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize -keyst ...