后端thinkphp和前端vue怎么协调

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端thinkphp和前端vue怎么协调相关的知识,希望对你有一定的参考价值。

参考技术A thinkphp作为服务端,为客户端提供数据。而Vue是客户端的一个javascript框架。便于我们对页面进行处理。
一般情况下,vue通过异步请求来获取数据。由于实例化vue时已经将相关的变量、模板等定义好了。
当获取到thinkphp回传的数据后,将会自动的把数据对应的呈现在网页上。 你看过后很简单吧以后不会可以向我一样经常到后盾人找找相关教材看看就会了,希望能帮到你,给个采纳吧谢谢(⁄ ⁄•⁄ω⁄•⁄ ⁄)本回答被提问者采纳

前端vue与后端Thinkphp在服务器的部署

参考技术A vue在服务端部署时,我们都知道通过npm run build 指令打包好的dist文件,通过http指定是可以直接浏览的,Thinkphp通过域名指向index.php文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。

web服务器: apache

一、跨域

在服务器配置站点:

在路径/home/www/  下创建test项目文件夹,用来放项目文件。  

找到httpd-vhosts.conf文件配置站点  

前端站点:  

    ServerName test.test.com  

    DocumentRoot "/home/www/test/dist"    

    DirectoryIndex index.html  

后端站点:  

    ServerName test.testphp.com  

    DocumentRoot "/home/www/test/php"    

    DirectoryIndex index.php  

将前端打包好的dist文件放在/home/www/test/ 文件夹下,运行http://test.test.com可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个.htaccess文件,当路径不存在时,路径指向http://test.test.com/index.html能解决此问题。

  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('http://test.testphp.com/index.php/base/login', user: '', password: '')。

(可在webpack.base.conf.js文件下可定义接口:http://test.testphp.com/index.php/)

二、同域

后端配置同上,公共配置器中的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: '')

转自:https://blog.csdn.net/qq_35465132/article/details/78986675

以上是关于后端thinkphp和前端vue怎么协调的主要内容,如果未能解决你的问题,请参考以下文章

前端vue与后端Thinkphp在服务器的部署

前端采用vue+webpack后端采用java全栈开发,怎么实现自动部署

vue项目中怎么使用后端传过来的ul并渲染到页面上

vue中,前端如何保存后端的接口返回值

thinkphp前端和后端怎么通信

vue按钮调用python函数