vue 调用微信支付方法

pay(){let data ={  order_id:this.order_id,  wechatpay_type:this.wechatpay_type,  merchant_id:localStorage.merchant_id,  authentication_token:this.token,  client_token:this.client_token}
this.$fetch(this.Wxpay, data).then(res=>{  if(res.code==200){    if (res.data.wechatpay_type == “wxpay”) {    // 公众号支付    this.callWxPay(res.data.pay_param);  } else if (res.data.wechatpay_type == “wxpay_h5_wap”) {    this.callWxPayH5(res.data.pay_param.mweb_url);  } else if (res.data.wechatpay_type == “wxpay_app”) {    this.callWxPayAPP(res.data.pay_param);  } else {    Toast(‘无效的支付类型’);  }  }else{    Toast(res.error)  }  },err=>{    alert(JSON.stringify(err))  })}, jsApiCall(params) {  let that = this  WeixinJSBridge.invoke(    ’getBrandWCPayRequest’, {      ’appId’: params.appId,      ’timeStamp’:params.timeStamp,      ’nonceStr’: params.nonceStr,      ’package’: params.package,      ’signType’: params.signType,      ’paySign’: params.paySign    },    function (res) {      if (res.err_msg === ‘get_brand_wcpay_request:ok’) {        Toast(‘微信支付成功’)        that.$router.replace({name:’fullOrder’,query:{id:’2′}})      } else if (res.err_msg === ‘get_brand_wcpay_request:cancel’) {        Toast(‘用户取消支付’)        that.$router.replace({name:’fullOrder’,query:{id:’1′}})      } else if (res.err_msg === ‘get_brand_wcpay_request:fail’) {        Toast(‘网络异常,请重试’)      }    }  );}, callWxPay(params) {  if (typeof WeixinJSBridge == “undefined”){  if( document.addEventListener ){    document.addEventListener(‘WeixinJSBridgeReady’, this.jsApiCall(params), false);  }else if (document.attachEvent){    document.attachEvent(‘WeixinJSBridgeReady’, this.jsApiCall(params));    document.attachEvent(‘onWeixinJSBridgeReady’, this.jsApiCall(params));    }  }else{    this.jsApiCall(params);  }}, callWxPayH5(mweb_url) {  location.href = mweb_url;}, callWxPayAPP(params) {  let dsBridge = require(“dsbridge”);  dsBridge.call(“requestWeChatPay”, params, function (data) {    alert(data);  })}, wechatpaytype(){  if(this.isWeiXin()){    this.wechatpay_type=’wxpay’  }else{    this.wechatpay_type=’wxpay_h5_wap’  }}, isWeiXin(){    //判断是否微信平台  var ua = window.navigator.userAgent.toLowerCase();    if (ua.match(/MicroMessenger/i) == ‘micromessenger’){    return true;  } else {    return false;  }}

https://www.cnblogs.com/ruthless/p/9009235.html

vue移动端使用appClound拉起支付宝支付的实现方法

vue移动端使用appClound拉起支付宝支付的实现方法_vue.js_脚本之家 这篇文章主要介绍了vue移动端使用appClound拉起支付宝支付的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

web

1-首先在config.xml中进行配置?

123<feature name="aliPay"><param name="urlScheme" value="AliPayA000000000" /></feature>

<feature name=”aliPay”> <param name=”urlScheme” value=”AliPayA000000000″ /> </feature>

2-在自己的应用中添加支付宝支付的模块

3.使用支付宝模块进行拉起支付宝?

1234567891011121314if (res.data.code == 200) {// 拉起支付宝//开发者通过 payOrder 方法来进行支付,自己处理订单信息以及签名过程console.log("自己处理订单信息以及签名过程请求:");var aliPay = api.require('aliPay');aliPay.payOrder({orderInfo: 'alipay_sdk=alipay-sdk-php-20180705&app_id=2016051201393416&biz_content=%........'}, function (ret, err) {api.alert({title: '支付结果',msg: ret.code,buttons: ['确定']});});

if (res.data.code == 200) { // 拉起支付宝 //开发者通过 payOrder 方法来进行支付,自己处理订单信息以及签名过程 console.log(“自己处理订单信息以及签名过程请求:”); var aliPay = api.require(‘aliPay’); aliPay.payOrder({ orderInfo: ‘alipay_sdk=alipay-sdk-php-20180705&app_id=2016051201393416&biz_content=%……..’ }, function (ret, err) { api.alert({ title: ‘支付结果’, msg: ret.code, buttons: [‘确定’] }); });

具体可以参考官网的 : https://docs.apicloud.com/Client-API/Open-SDK/aliPay

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

PHP判断是手机QQ内置浏览器还是QQ浏览器

if(isQQBrowser() == ‘QQ’){
echo “QQ内置浏览器”;
}elseif(isQQBrowser() == ‘QQBrowser’){
echo “QQ浏览器”;
}else{
echo “其他浏览器”;
}

function isQQBrowser(){
if(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘QQ’) !== false){
if(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘SQ‘) !== false){
return “QQ”; //QQ内置浏览器
}else{
return “QQBrowser”; //QQ浏览器
}
}
return false;
}

tp5批量更新数据saveAll()

ThinkPHP是国内流行的PHP开发框架之一,对于数据批量更新的问题在Think PHP5的官方文档有说明,但是我估计很多小伙伴看过文档之后可能会存在一点懵逼。因为官方文档讲述数据批量更新采用的是saveAll()的方法。以下是官方文档部分。

ThinkPHP5数据批量更新的问题

文档连接地址:https://www.kancloud.cn/manual/thinkphp5/135189

文档本身没有任何问题,假如我们有一个数据库表表名为“tp_user",其中"tp_"为表前缀。那么我们可以把包含主键的数组通过文档的方法直接批量更新到数据库中。

然而假如有一种情况就是我们的表名没有这么设计,或者我们在一个model中要更新一个特定的数据表的话,那么这个方法就不能直接使用了。否则就会报错。

今天之所以发现这个问题,是因为我在写项目中直接用Db的链式操作update()数组的时候出现了“没有更新数据”的错误后排查时发现的。

发现这一问题后我也百度了一下网上有没有网友遇到同类的问题,其中有部分网友的解决方案是重新封装一个updateAll()的方法。重新封装确实是一种最直接的解决问题的方法。同样的我也弄了个DataService来批量的修改数据,不过既然用了TP框架,我觉得还是最好用官方的方法比较好。经过半个小时研究TP的源代码,找到了最终的解决方法。

这里是think PHP5的方法,估计3.2不太适合。解决方法如下:

我们在任何位置如果想批量对任何一个数据库表执行批量更新的操作,只需要如下两行代码就可以了。

$this->name("数据表名");
$res = $this->saveAll($data);
至于更新最终结果,我们拿$res去判断就可以了。

以上内容就是波波今天遇到的问题及解决方法,希望可以帮助有同样需求的小伙伴。同样的下面是对单条数据更新返回值判断的补充。

我不知道有没有小伙伴写代码类似“$res = Db::name()->where($where)->update($data);”进行单条数据更新的,如果更新的数据和原始数据一样,就是没有改变的前提下,其实$res返回值判断很容易执行到false的逻辑中去。

解决方法:用“===”进行判断。示例如下:

if($res !== false) {
    echo 'success';
}else{
    echo 'false';
}
好了,这篇日记就写这些吧,其实项目中出现问题并不可怕,一步一步排查分析其实所有的问题都很容易解决。

<?php
namespace app\index\controller;
use app\index\model\Staff;

class Index {

  public function index(){

    //创建模型对象
    $model = new Staff;
    
    //创建自定义数据
    $data[] = ['id' => 1010,'name'=>'宋门庆'];
    $data[] = ['id' => 1011,'name'=>'马金莲'];

    //批量更新,自动识别更新和写入
    $result = $model -> saveAll($data,true);

    //反馈执行信息
    echo $result ? '更新成功!<br />' : '更新失败~~<br />' ;

    //查看更新后的信息
    echo '更新后的记录信息:<br />';

    //遍历数据对象数组
    foreach ($result as $list){
      dump($list -> getData());
    }    
  }
}

批量更新

<?php
namespace app\index\controller;
use app\index\model\Staff;

class Index {

  public function index(){

  $dataBefore = Staff::where('name','like','%云%')->select();

  if (!empty($dataBefore)){

      //查看一下更新前的数据对象中的原始数据
      echo '1. 查看一下更新前的数据对象中的原始数据<br />';
      foreach ($dataBefore as $before){
         dump($before->getData());
      }

      //更新数据对象中的原始数据
      foreach ($dataBefore as $list){
         $list -> setAttr('salary','6000');
         $data[] = $list -> getData();
      }

      //用数据对象中的原始数据更新表中对应字段信息
      $dataAfter = (new Staff()) -> saveAll($data);

      if (!empty($dataAfter)){
					echo '更新成功!<br />';
          //查看更新完成后返回的数据对象
          echo '2. 查看一下更新后的数据对象中的原始数据<br />';
          foreach ($dataAfter as $after){
            dump($after->getData());
          }
        }else{
          echo '更新失败!';
        }
  } else {
    echo '没有满足条件的记录!';
  }     
 }
}

输出

1. 查看一下更新前的数据对象中的原始数据
array(6) {
  ["id"] => int(1009)
  ["name"] => string(9) "楚云飞"
  ["sex"] => int(1)
  ["salary"] => float(8100)
  ["dept"] => string(9) "开发部"
  ["hiredate"] => string(10) "2017-01-01"
}
array(6) {
  ["id"] => int(1010)
  ["name"] => string(9) "李云龙"
  ["sex"] => int(1)
  ["salary"] => float(2000)
  ["dept"] => string(9) "开发部"
  ["hiredate"] => string(10) "2017-02-01"
}
更新成功!
2. 查看一下更新后的数据对象中的原始数据
array(6) {
  ["id"] => int(1009)
  ["name"] => string(9) "楚云飞"
  ["sex"] => int(1)
  ["salary"] => string(4) "6000"
  ["dept"] => string(9) "开发部"
  ["hiredate"] => string(10) "2017-01-01"
}
array(6) {
  ["id"] => int(1010)
  ["name"] => string(9) "李云龙"
  ["sex"] => int(1)
  ["salary"] => string(4) "6000"
  ["dept"] => string(9) "开发部"
  ["hiredate"] => string(10) "2017-02-01"
}

PHP语法基础篇——除法取整和取余数

1. ceil — 进一取整函数
函数详解
float ceil ( float value )
返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
示例:

ceil(4.33)  52. floor — 舍去取整函数

函数详解
float floor ( float value )
返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
示例:

echo floor(9.99) 93. round — 四舍五入取整函数

函数详解
float round ( float val [, int precision] )
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。
例子 1. round() 例子

round(3.4); 3

round(3.5); 4因为我们的取整函数返回的数据类型都是float类型,一般我们可用intval函数,将数据类型强制转化为整数类型。

示例:
intval—将数据强制转化成整数型态
例子intval()

intval(4.3) 4

intval(4.7) 4 好了,我们来尝试下将除法结果分为整数和余数部分吧。

举例:7/3
整数部分:intval(floor(7/3))
余数部分:7%3

【TP3.2】路由匹配和规则

TP3.2框架的路由匹配和规则处理:

包括:静态路由,动态路由,多参数路由、正则路由

复制代码
<?php
return array(
    //'配置项'=>'配置值'
    
    /* 
     * 路由开启和匹配。首先开启路由匹配,然后根据相应的路由规则进行匹配
     * 1、静态路由
     * 2、动态路由
     * 3、动静态结合路由
     * 4、正则路由 
     */
    'URL_ROUTER_ON'   => true, //开启路由
    'URL_ROUTE_RULES' => array( //定义路由规则
        //路由规则          //指向url匹配地址
        'News/top' => 'news/index?type=top',     //静态路由(死的),指向Admin/news/index?type=top
        'News/:id\d$'    => 'News/read',          //动态路由,指向Admin/News/read?id=:id    //$后面再加参数是无效的
        'News/:name'    => 'News/read',          //动态路由,指向Admin/News/read?name=:name,注意这里的name参数一定要和控制器接受的name参数一致
        'News/:year\d/:month\d'  => 'News/archive',
        '/^News\/(\d{4})\/(\d{2})$/' => 'News/archive?year=:1&month=:2',//正则路由,指向Admin/News/archive?year=:1&month=:2
    ),
);

thinkphp3.2.3中设置路由,优化url

需求: 访问这个目录的时候,http://xx.com/p-412313要重定向到(暂且这么叫)http://xx.com/Home/Blog/index/id/412313

就是看着好看

我的应用目录是Application。模块是Home

第一步:知道哪个文件怎么处理的路由
路由处理在think/Route.class.php

// 动态路由处理        $routes =   C('URL_ROUTE_RULES');        // var_dump($routes);         if(!empty($routes)) {            // dump($routes);            //array(1) {                // ["/^p-(\d+)$/"] => string(16) "Blog/index?id=:1"            //}            // echo "rount.class.php\n";            foreach ($routes as $rule=>$route){                if(is_numeric($rule)){                    // 支持 array('rule','adddress',...) 定义路由                    $rule   =   array_shift($route);                }     ...代码多,仅标识位置

第二步:在项目模块的配置文件下,设置配置文件 如下(因为tp是逐级加载配置文件,惯例配置->应用配置->模式配

置->调试配置->状态配置->模块配置->扩展配置->动态配置,这里属于模块配置

<?phpreturn array(      'MODULE_ALLOW_LIST' => array('Home','Admin','Common'),     'DEFAULT_MODULE'       =>    'Home',  // 默认模块     'DEFAULT_CONTROLLER'    =>  'Index', // 默认控制器名称     'DEFAULT_ACTION'        =>  'index', // 默认操作名称         //    路由规则    'URL_ROUTER_ON' => TRUE,    'URL_ROUTE_RULES' => array(        '/^c-(\d+)$/' => 'Index/content?id=:1'    ),	 'URL_ROUTER_ON '=>true,     'URL_MODEL'          => '1',      'URL_ROUTE_RULES'=>array(          '/^p-(\d+)$/' => 'Home/Blog/index?id=:1',//意思是访问x.com/p-34 会访问的是x.com/Blog/index/id/34          ),);

第三部:
如果你没有设置默认的模块 ,会出现找不到p-34这个模块的错误。
那么需要在index.php中设置
define(‘BIND_MODULE’,’Home’);

这样就可以了。

说明:如果没有第三步。默认打开是正常的就是这样。

但是

所以我们操作第三步,就可以实现如下效果了:

PHP多线程解决方案

一、php模拟实现多线程的三种方法

1、linux下的php多线程

下面所讲的东西是源自php的pcntl_fork函数.因为这个函数依赖操作系统fork的实现,所以本文所讲的东西只适用于linux/unix。那么先看看这个函数的用法吧.php手册上是这么说的:

<?php
$pid = pcntl_fork();
if ($pid == -1) {
         die('could not fork');
} else if ($pid) {
         // we are the parent
         pcntl_wait($status); //Protect against Zombie children
} else {
         // we are the child
}
?>

通过pcntl_fork创建一个子进程,如果返回值是-1的话,那么说明子进程创建失败.创建成功的进程id会返回给父进程,0返回给子进程.不好理解吧,所以应该这样写:

<?php
$pid = pcntl_fork();
if($pid == -1){
         //创建失败咱就退出呗,没啥好说的
         die('could not fork');
}
else{
        if($pid){
                //从这里开始写的代码是父进程的,因为写的是系统程序,记得退出的时候给个返回值
                exit(0);
        }
        else{
                //从这里开始写的代码都是在新的进程里执行的,同样正常退出的话,最好也给一个返回值
                exit(0);
        }
}
?>

这样一改好理解多了,如果你父进程希望知道子进程正常退出的话,可以加上前面的pcntl_wait。

2.通过stream_socket_client 方式

function sendStream() { 
    $english_format_number = number_format($number, 4, '.', ''); 
  
    echo $english_format_number;  
    exit(); 
    $timeout = 10; 
    $result = array(); 
    $sockets = array(); 
    $convenient_read_block = 8192; 
    $host = "test.local.com"; 
    $sql = "select waybill_id,order_id from xm_waybill where status>40 order by update_time desc limit 1 ";  
    $data = Yii::app()->db->createCommand($sql)->queryAll(); 
    $id = 0; 
  
    foreach ($data as $k => $v) { 
      if ($k % 2 == 0) { 
        $send_data[$k]['body'] = NoticeOrder::getSendData($v['waybill_id']); 
  
      } else { 
        $send_data[$k]['body'] = array($v['order_id'] => array('extra' => 16));  
      }  
      $data = json_encode($send_data[$k]['body']); 
      $s = stream_socket_client($host . ":80", $errno, $errstr, $timeout, STREAM_CLIENT_ASYNC_CONNECT | STREAM_CLIENT_CONNECT); 
      if ($s) {  
        $sockets[$id++] = $s; 
        $http_message = "GET /php/test.php?data=" . $data . " HTTP/1.0\r\nHost:" . $host . "\r\n\r\n";  
        fwrite($s, $http_message); 
      } else {  
        echo "Stream " . $id . " failed to open correctly."; 
      }  
    } 
  
    while (count($sockets)) { 
  
      $read = $sockets; 
  
      stream_select($read, $w = null, $e = null, $timeout); 
       if (count($read)) {  
        /* stream_select generally shuffles $read, so we need to 
         compute from which socket(s) we're reading. */
        foreach ($read as $r) { 
  
          $id = array_search($r, $sockets); 
          $data = fread($r, $convenient_read_block); 
          if (strlen($data) == 0) { 
            echo "Stream " . $id . " closes at " . date('h:i:s') . ".<br>  "; 
            fclose($r); 
             unset($sockets[$id]); 
          } else { 
            $result[$id] = $data; 
          } 
        } 
      } else {  
        /* A time-out means that *all* streams have failed 
         to receive a response. */
        echo "Time-out!\n"; 
        break; 
      }  
    }  
    print_r($result); 
  
  }

3、通过多进程代替多线程

function daemon($func_name,$args,$number){ 
  while(true){ 
    $pid=pcntl_fork(); 
    if($pid==-1){ 
      echo "fork process fail"; 
      exit(); 
    }elseif($pid){//创建的子进程 
  
      static $num=0; 
      $num++; 
      if($num>=$number){ 
        //当进程数量达到一定数量时候,就对子进程进行回收。 
        pcntl_wait($status); 
  
        $num--; 
      }  
    }else{ //为0 则代表是子进程创建的,则直接进入工作状态 
  
      if(function_exists($func_name)){ 
        while (true) { 
          $ppid=posix_getpid(); 
          var_dump($ppid); 
          call_user_func_array($func_name,$args); 
          sleep(2); 
        } 
      }else{ 
        echo "function is not exists"; 
      } 
      exit();   
    } 
  } 
}  
function worker($args){  
  //do something 
  
}  
daemon('worker',array(1),2); 

二、真正实现php多线程的方法

php真正的多线程实现方式,通过安装php的扩展 pthread 可以做到。

点此下载 但是这个下载的是 版本3 也就是php 7 才能用的,我们需要使的是 版本2 

php扩展

然后刷新的页面如下,拖到最底部:

php多线程
下载文件

下一页找到版本2的

下载下来,这个v2 才是php5才可以使用的

下载下来,安装:

或者,您直接这样下载:

cd /tools  
   wget https://github.com/krakjoe/pthreads/archive/v2.0.10.zip  
   unzip   v2.0.10.zip  
   cd pthreads-2.0.10  
   /usr/local/php/bin/phpize  
   ./configure --with-php-config=/usr/local/php/bin/php-config    
   make  
   make install

注意:您的php 在编译的时候需要开启 –enable-maintainer-zts

./configure --prefix=/usr/local/php --disable-fileinfo   --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc  --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --with-mysql=/usr/local/mysql --without-pear --enable-maintainer-zts 
vim /etc/php.ini 
添加
extension=pthreads.so
重启php  
/etc/init.d/php-fpm restart

内置图标一览表

  • 实心&#xe68f;layui-icon-heart-fill
  • 空心&#xe68c;layui-icon-heart
  • 亮度/晴&#xe748;layui-icon-light
  • 时间/历史&#xe68d;layui-icon-time
  • 蓝牙&#xe689;layui-icon-bluetooth
  • @艾特&#xe687;layui-icon-at
  • 静音&#xe685;layui-icon-mute
  • 录音/麦克风&#xe6dc;layui-icon-mike
  • 密钥/钥匙&#xe683;layui-icon-key
  • 礼物/活动&#xe627;layui-icon-gift
  • 邮箱&#xe618;layui-icon-email
  • RSS&#xe808;layui-icon-rss
  • WiFi&#xe7e0;layui-icon-wifi
  • 退出/注销&#xe682;layui-icon-logout
  • Android 安卓&#xe684;layui-icon-android
  • Apple IOS 苹果&#xe680;layui-icon-ios
  • Windows&#xe67f;layui-icon-windows
  • 穿梭框&#xe691;layui-icon-transfer
  • 客服&#xe626;layui-icon-service
  • 减&#xe67e;layui-icon-subtraction
  • 加&#xe624;layui-icon-addition
  • 滑块&#xe714;layui-icon-slider
  • 打印&#xe66d;layui-icon-print
  • 导出&#xe67d;layui-icon-export
  • 列&#xe610;layui-icon-cols
  • 退出全屏&#xe758;layui-icon-screen-restore
  • 全屏&#xe622;layui-icon-screen-full
  • 半星&#xe6c9;layui-icon-rate-half
  • 星星-空心&#xe67b;layui-icon-rate
  • 星星-实心&#xe67a;layui-icon-rate-solid
  • 手机&#xe678;layui-icon-cellphone
  • 验证码&#xe679;layui-icon-vercode
  • 微信&#xe677;layui-icon-login-wechat
  • QQ&#xe676;layui-icon-login-qq
  • 微博&#xe675;layui-icon-login-weibo
  • 密码&#xe673;layui-icon-password
  • 用户名&#xe66f;layui-icon-username
  • 刷新-粗&#xe9aa;layui-icon-refresh-3
  • 授权&#xe672;layui-icon-auz
  • 左向右伸缩菜单&#xe66b;layui-icon-spread-left
  • 右向左伸缩菜单&#xe668;layui-icon-shrink-right
  • 雪花&#xe6b1;layui-icon-snowflake
  • 提示说明&#xe702;layui-icon-tips
  • 便签&#xe66e;layui-icon-note
  • 主页&#xe68e;layui-icon-home
  • 高级&#xe674;layui-icon-senior
  • 刷新&#xe669;layui-icon-refresh
  • 刷新&#xe666;layui-icon-refresh-1
  • 旗帜&#xe66c;layui-icon-flag
  • 主题&#xe66a;layui-icon-theme
  • 消息-通知&#xe667;layui-icon-notice
  • 网站&#xe7ae;layui-icon-website
  • 控制台&#xe665;layui-icon-console
  • 表情-惊讶&#xe664;layui-icon-face-surprised
  • 设置-空心&#xe716;layui-icon-set
  • 模板&#xe656;layui-icon-template-1
  • 应用&#xe653;layui-icon-app
  • 模板&#xe663;layui-icon-template
  • 赞&#xe6c6;layui-icon-praise
  • 踩&#xe6c5;layui-icon-tread
  • 男&#xe662;layui-icon-male
  • 女&#xe661;layui-icon-female
  • 相机-空心&#xe660;layui-icon-camera
  • 相机-实心&#xe65d;layui-icon-camera-fill
  • 菜单-水平&#xe65f;layui-icon-more
  • 菜单-垂直&#xe671;layui-icon-more-vertical
  • 金额-人民币&#xe65e;layui-icon-rmb
  • 金额-美元&#xe659;layui-icon-dollar
  • 钻石-等级&#xe735;layui-icon-diamond
  • 火&#xe756;layui-icon-fire
  • 返回&#xe65c;layui-icon-return
  • 位置-地图&#xe715;layui-icon-location
  • 办公-阅读&#xe705;layui-icon-read
  • 调查&#xe6b2;layui-icon-survey
  • 表情-微笑&#xe6af;layui-icon-face-smile
  • 表情-哭泣&#xe69c;layui-icon-face-cry
  • 购物车&#xe698;layui-icon-cart-simple
  • 购物车&#xe657;layui-icon-cart
  • 下一页&#xe65b;layui-icon-next
  • 上一页&#xe65a;layui-icon-prev
  • 上传-空心-拖拽&#xe681;layui-icon-upload-drag
  • 上传-实心&#xe67c;layui-icon-upload
  • 下载-圆圈&#xe601;layui-icon-download-circle
  • 组件&#xe857;layui-icon-component
  • 文件-粗&#xe655;layui-icon-file-b
  • 用户&#xe770;layui-icon-user
  • 发现-实心&#xe670;layui-icon-find-fill
  • loading&#xe63d;layui-icon-loading
  • loading&#xe63e;layui-icon-loading-1
  • 添加&#xe654;layui-icon-add-1
  • 播放&#xe652;layui-icon-play
  • 暂停&#xe651;layui-icon-pause
  • 音频-耳机&#xe6fc;layui-icon-headset
  • 视频&#xe6ed;layui-icon-video
  • 语音-声音&#xe688;layui-icon-voice
  • 消息-通知-喇叭&#xe645;layui-icon-speaker
  • 删除线&#xe64f;layui-icon-fonts-del
  • 代码&#xe64e;layui-icon-fonts-code
  • HTML&#xe64b;layui-icon-fonts-html
  • 字体加粗&#xe62b;layui-icon-fonts-strong
  • 删除链接&#xe64d;layui-icon-unlink
  • 图片&#xe64a;layui-icon-picture
  • 链接&#xe64c;layui-icon-link
  • 表情-笑-粗&#xe650;layui-icon-face-smile-b
  • 左对齐&#xe649;layui-icon-align-left
  • 右对齐&#xe648;layui-icon-align-right
  • 居中对齐&#xe647;layui-icon-align-center
  • 字体-下划线&#xe646;layui-icon-fonts-u
  • 字体-斜体&#xe644;layui-icon-fonts-i
  • Tabs 选项卡&#xe62a;layui-icon-tabs
  • 单选框-选中&#xe643;layui-icon-radio
  • 单选框-候选&#xe63f;layui-icon-circle
  • 编辑&#xe642;layui-icon-edit
  • 分享&#xe641;layui-icon-share
  • 删除&#xe640;layui-icon-delete
  • 表单&#xe63c;layui-icon-form
  • 手机-细体&#xe63b;layui-icon-cellphone-fine
  • 聊天 对话 沟通&#xe63a;layui-icon-dialogue
  • 文字格式化&#xe639;layui-icon-fonts-clear
  • 窗口&#xe638;layui-icon-layer
  • 日期&#xe637;layui-icon-date
  • 水 下雨&#xe636;layui-icon-water
  • 代码-圆圈&#xe635;layui-icon-code-circle
  • 轮播组图&#xe634;layui-icon-carousel
  • 翻页&#xe633;layui-icon-prev-circle
  • 布局&#xe632;layui-icon-layouts
  • 工具&#xe631;layui-icon-util
  • 选择模板&#xe630;layui-icon-templeate-1
  • 上传-圆圈&#xe62f;layui-icon-upload-circle
  • 树&#xe62e;layui-icon-tree
  • 表格&#xe62d;layui-icon-table
  • 图表&#xe62c;layui-icon-chart
  • 图标 报表 屏幕&#xe629;layui-icon-chart-screen
  • 引擎&#xe628;layui-icon-engine
  • 下三角&#xe625;layui-icon-triangle-d
  • 右三角&#xe623;layui-icon-triangle-r
  • 文件&#xe621;layui-icon-file
  • 设置-小型&#xe620;layui-icon-set-sm
  • 减少-圆圈&#xe616layui-icon-reduce-circle
  • 添加-圆圈&#xe61f;layui-icon-add-circle
  • 404&#xe61c;layui-icon-404
  • 关于&#xe60b;layui-icon-about
  • 箭头 向上&#xe619;layui-icon-up
  • 箭头 向下&#xe61a;layui-icon-down
  • 箭头 向左&#xe603;layui-icon-left
  • 箭头 向右&#xe602;layui-icon-right
  • 圆点&#xe617;layui-icon-circle-dot
  • 搜索&#xe615;layui-icon-search
  • 设置-实心&#xe614;layui-icon-set-fill
  • 群组&#xe613;layui-icon-group
  • 好友&#xe612;layui-icon-friends
  • 回复 评论 实心&#xe611;layui-icon-reply-fill
  • 菜单 隐身 实心&#xe60f;layui-icon-menu-fill
  • 记录&#xe60e;layui-icon-log
  • 图片-细体&#xe60d;layui-icon-picture-fine
  • 表情-笑-细体&#xe60c;layui-icon-face-smile-fine
  • 列表&#xe60a;layui-icon-list
  • 发布 纸飞机&#xe609;layui-icon-release
  • 对 OK&#xe605;layui-icon-ok
  • 帮助&#xe607;layui-icon-help
  • 客服&#xe606;layui-icon-chat
  • top 置顶&#xe604;layui-icon-top
  • 收藏-空心&#xe600;layui-icon-star
  • 收藏-实心&#xe658;layui-icon-star-fill
  • 关闭-实心&#x1007;layui-icon-close-fill
  • 关闭-空心&#x1006;layui-icon-close
  • 正确&#x1005;layui-icon-ok-circle
  • 添加-圆圈-细体&#xe608;layui-icon-add-circle-fine

跨域问题的解决

由于浏览器存在同源策略,所以如果 layui(里面含图标字体文件)所在的地址与你当前的页面地址不在同一个域下,即会出现图标跨域问题。所以要么你就把 layui 与网站放在同一服务器,要么就对 layui 所在的资源服务器的 Response Headers 加上属性:Access-Control-Allow-Origin: *

layui – 用心与你沟通