当前位置: 首页 > news >正文

旅游网站开发自助建站系统源码

旅游网站开发,自助建站系统源码,做网站 以图搜货,游戏网站建设与策划背景&#xff1a;我在前端使用vue语言开发的&#xff0c;请求的后端是用ThinkPhp项目开发的。我vue项目里的请求php接口&#xff0c;自带header参数的跨域问题通过网上查询到的server端配置方法已经解决了。我使用的 是中间件的配置方法&#xff1a; <?php//admin 项目 配…

背景:我在前端使用vue语言开发的,请求的后端是用ThinkPhp项目开发的。我vue项目里的请求php接口,自带header参数的跨域问题通过网上查询到的server端配置方法已经解决了。我使用的

是中间件的配置方法:

<?php//admin 项目 配置中间件
use app\admin\middleware\MyCrossDomain;return [MyCrossDomain::class
]; 

 MyCrossDomain.php

<?php
namespace app\admin\middleware;use Closure;
use think\Config;
use think\Request;
use think\Response;/*** 跨域请求支持*/
class MyCrossDomain
{protected $cookieDomain;protected $header = ['Access-Control-Allow-Credentials' => 'true','Access-Control-Max-Age'           => 1800,'Access-Control-Allow-Methods'     => 'GET, POST, PATCH, PUT, DELETE, OPTIONS','Access-Control-Allow-Headers'     => 'Authorization, Code,Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-CSRF-TOKEN, X-Requested-With',];public function __construct(Config $config){$this->cookieDomain = $config->get('cookie.domain', '');}/*** 允许跨域请求* @access public* @param Request $request* @param Closure $next* @param array   $header* @return Response*/public function handle(Request $request, Closure $next, array $header = []): Response{$header = !empty($header) ? array_merge($this->header, $header) : $this->header;if (!isset($header['Access-Control-Allow-Origin'])) {$origin = $request->header('origin');if ($origin && ('' == $this->cookieDomain || str_contains($origin, $this->cookieDomain))) {$header['Access-Control-Allow-Origin'] = $origin;} else {$header['Access-Control-Allow-Origin'] = '*';}}return $next($request)->header($header);}
}

这样之后前端项目通过axios接口请求不再报跨域的错了,这一阶段的问题已经解决。

现在有一个新的问题,我在Thinkphp项目里有一个静态的json文件,H5要通过<link>的方式要请求它。类似这样的:

   document.write("<link rel='manifest' href='https://landpage-server.appboost.co/admin/file/xxxxx/xxxx.json');

虽然我的ThinkPhp项目已经配置了跨域的,但是对于请求这个静态文件还是报跨域的问题。折腾了好久,各种配置还是不行。最后我尝试了一种办法,就是专门写一个Controller来响应静态文件的返回。代码如下:

StaticResourceController.php

<?phpnamespace app\admin\controller;use app\admin\model\LogEvents;
use app\admin\model\PixelInfo;
use app\admin\model\ReleasePlatform;
use app\admin\model\ReleaseUrl;
use app\admin\model\User;
use app\admin\model\Wallet;
use app\admin\model\WalletLog;
use app\BaseController;
use app\Response;
use Ramsey\Uuid\Uuid;
use think\facade\Console;
use think\facade\Db;class StaticResourceController extends MBaseController{public function getManifestJson(){$company_code = input("get.code");$promote_code = input("get.id");// echo root_path();$root =  root_path();$dir = $root ."public/page/";// echo $dir;$content = $this->openFile($dir,$company_code,$promote_code);$obj = json_decode($content);return json($obj, 200);}public function openFile($dir, $company_code,$promote_code){$filePath = $dir.$company_code."/".$promote_code.".json"; // 文件路径$mode = 'r'; // 打开模式$fileHandle = fopen($filePath, $mode);$content = fread($fileHandle, filesize($filePath));if ($fileHandle === false) {die('无法打开文件');}fclose($fileHandle);return $content;}
}

H5端请求是这样的:

   document.write("<link rel='manifest' href='https://landpage-server.appboost.co/admin/staticResource/getManifestJson?code="+$company_code+"&id="+$promote_code+"'>");

谢天谢地,终于不报跨域的问题了,成功拿到了json静态文件。

http://www.wangmingla.cn/news/81890.html

相关文章:

  • 美国手表网站河南网站优化排名
  • 网站建设 部署与发布 答案短期培训班学什么好
  • 网站商场模板百度seo建议
  • 赌城网站怎么做免费b2b网站大全免费
  • 商城网站页面设计哈尔滨seo推广
  • 珍爱网建设网站的目的东莞网络推广系统
  • 黑帽seo怎么做网站排名下载百度搜索
  • 西宁房地产网站建设百度搜索竞价推广
  • 移动端网站 用什么软件做百度客服24小时人工服务在线咨询
  • 淘宝客 wordpress网站四川网络推广推广机构
  • 群晖NAS建WordPressseo招聘要求
  • 个人网站做哪种类型seo点石论坛
  • 武汉做网站的域名收录提交入口
  • 为什么有些公司却没有自己的网站石家庄网站建设方案优化
  • 网站后台管理系统怎么开发中国企业500强
  • 淘宝客做软件网站app做网店自己怎么去推广
  • 同城做鸭网站关键词提取工具
  • 企业网站需要在公安局备案吗网站收录一键提交
  • 网站建设或网站优化排名百度网站推广教程
  • 做网站用dw还是vs信息流广告加盟代理
  • 吉安做网站优化百度搜索引擎推广收费标准
  • 淮安做网站找哪家公司市场营销经典案例
  • vps装网站管理系统汕头网站建设平台
  • 长沙网站推广公司游戏网站交换友情链接
  • 做问卷不花钱的网站百度网盘怎么找片
  • 淘宝券商城网站制作媒体发布平台
  • ie打不开建设企业网站百度在线翻译
  • 重庆南岸营销型网站建设公司推荐百度竞价推广方案
  • 成都疫情到底有多严重seo优化思路
  • 晋城做网站公司一句简短走心文案