很多站长朋友们都不太清楚vue里写php,今天小编就来给大家整理vue里写php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 前端用vue 后台php我该怎么写 2、 前端vue与后端Thinkphp在服务器的部署 3、 如何在vue里面访问php 前端用vue 后台php我该怎么写类似写接口,我记得后盾人有教学视频,楼主可以去学习一下,最近还有实训班活动哦
前端vue与后端Thinkphp在服务器的部署vue在服务端部署时,我们都知道通过npm run build 指令打包好的dist文件,通过http指定是可以直接浏览的,Thinkphp通过域名指向index.php文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。
web服务器: apache
一、跨域
在服务器配置站点:
在路径/home/www/??下创建test项目文件夹,用来放项目文件。??
找到httpd-vhosts.conf文件配置站点??
前端站点:??
????ServerName?test.test测试数据??
????DocumentRoot?"/home/www/test/dist"????
????DirectoryIndex?index.html??
后端站点:??
????ServerName?test.testphp测试数据??
????DocumentRoot?"/home/www/test/php"????
????DirectoryIndex?index.php??
将前端打包好的dist文件放在/home/www/test/ 文件夹下,运行可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个.htaccess文件,当路径不存在时,路径指向能解决此问题。
??RewriteEngine?On??
??RewriteBase?/??
??RewriteRule?^index\.html$?-?[L]??
??RewriteCond?%{REQUEST_FILENAME}?!-f??
??RewriteCond?%{REQUEST_FILENAME}?!-d??
??RewriteRule?.?/index.html?[L]??
在/home/www/test文件夹下创建项目根目录php文件夹,将thinkphp文件放在php下。TP5的入口文件在public文件下,在这将public下的入口文件index.php挪到php文件夹下(个人习惯将入口文件放在项目根目录), 后端绑定Index模块。
前端调用后端接口,存在跨域,跨域解决方法有好几种,在这我将在后端php做配置,解决跨域问题,在公用控制器设置跨域配置:
class?Common?extends?Controller??
{??
????public?$param;??
????//?设置跨域访问??
????public?function?_initialize()??
????{??
????????parent::_initialize();??
????????isset($_SERVER['HTTP_ORIGIN'])???header('Access-Control-Allow-Origin:?'.$_SERVER['HTTP_ORIGIN'])?:?'';??
????????header('Access-Control-Allow-Credentials:?true');??
????????header('Access-Control-Allow-Methods:?GET,?POST,?PUT,?DELETE,?OPTIONS');??
????????header("Access-Control-Allow-Headers:?Origin,?X-Requested-With,?Content-Type,?Accept,?authKey,?sessionId");??
$param?=??Request::instance()->param();??
$this->param?=?$param;??
????}??
}??
前端调用登录接口: this.axios.post('', {user: '', password: ''})。
(可在webpack.base.conf.js文件下可定义接口:)
二、同域
后端配置同上,公共配置器中的header配置注释。将前端的dist文件下的所有文件(包含.htaccess),放在php文件夹下。将后端index控制器的index方法的路径重定向php下的index.html文件:
namespace?app\index\controller;??
use?think\Controller;??
class?Index?extends?Controller??
{??
????public?function?index()?{??
$this->redirect('/index.html');??
????}??
}??
前端调用登录接口: this.axios.post('/index.php/base/login', {user: '', password: ''})
转自:
如何在vue里面访问php端口不同,就涉及到ajax的跨域问题。ajax跨域可以用jsonp的方式来传递数据,也可以在被请求的页面上加入header:Access-Control-Allow-Origin:*,*代表任何请求来源,也可以改成指定的IP或域名进行限制,不过这种方法安全级别较低,不能用来获取安全要求较高的数据。
关于vue里写php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于vue里写php vue里写文字的详细内容...