判断ajax返回是否为json格式并处理

2019-06-15 10:04:20 阅读:2160

首先先上js代码,这里要注意,由于我用的是jquery的ajax,所以你想使用需要引用jquery.1.判断是否为json的JavaScript:functionisJSON(str){ if(typeofstr=='string'){ try{ varobj=JSON.parse(str); if(str.indexOf('{')>-1){ return1; }else{ return0; } }catch(e){ return0; } } return0; }2.页面上使用上面的方法:functionbuy_product(id,cate){ layer.confirm('您确定要购买该商品吗?',{btn:['确定','取消'],title:"提示"},function(){ $.ajax({ type:'POST', url:"/index.php/Index/1.html", dataType:"html", data:"id="+id+"&cate="+cate, success:function(responsestr){ varstr=isJSON(responsestr); if(str==1){ varobj=JSON.parse(responsestr); if(obj.s==10){ layer.msg('成功!',{shade:0.6,time:1000,end:function(){ $(".shop_section3").show();returnfalse; }}); }elseif(obj.s==2){ layer.alert(obj.msg,{icon:1,shade:0.8,end:function(){ window.location.href="/index.php/Login/2.html"; }});returnfalse; }elseif(obj.s==3){ layer.alert(obj.msg,{icon:1,shade:0.8,end:function(){ window.location.href="/index.php/My/3.html"; }});returnfalse; }else{ layer.alert(obj.msg,{shade:0.2});returnfalse; } }else{ layer.alert('系统正忙,请稍后再试!',{shade:0.2}); } }, error:function(){ layer.alert('系统繁忙,请稍后再试!',{shade:0.2}); } }); }); }程序里面这样写:/*开始首页商品购买*/ publicfunctionbuyproduct(){ $id=intval($_POST['id']); $cid=intval($_POST['cate']); /*用户有没有登陆*/ if(empty($_SESSION['fid'])){ $ary=array('s'=>2,'msg'=>'请您先登录!'); echojson_encode($ary);exit; } //....... }专门摘出来看一下:$.ajax({ type:'POST', url:"{:U('Set/transpoint')}", dataType:"html", data:"num="+num+"&tel="+tel, success:function(responsestr){ varstr=isJSON(responsestr); if(str==1){ varobj=JSON.parse(responsestr); if(obj.s==10){ layer.msg('成功!',{shade:0.6,time:1000,end:function(){ returnfalse; }}); }else{ layer.alert(obj.msg,{shade:0.2});returnfalse; } }else{ layer.alert('系统正忙,请稍后再试!',{shade:0.2}); } }, error:function(){ layer.alert('系统繁忙,请稍后再试!',{shade:0.2}); } });

http状态码200,300,404等是什么意思

2019-06-11 09:12:06 阅读:2056

1开头的http状态码表示临时响应并需要请求者继续执行操作的状态代码。100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。2开头的http状态码,表示请求成功200成功处理了请求,一般情况下都是返回此状态码;201请求成功并且服务器创建了新的资源。202接受请求但没创建资源;203返回另一资源的请求;204服务器成功处理了请求,但没有返回任何内容;205服务器成功处理了请求,但没有返回任何内容;206处理部分请求;3xx(重定向)重定向代码,也是常见的代码300(多种选择)针对请求,服务器可执行多种操作。服务器可根据请求者(useragent)选择一项操作,或提供操作列表供请求者选择。301(永久移动)请求的网页已永久移动到新位置。服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置。302(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。303(查看其他位置)请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码。304(未修改)自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。305(使用代理)请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。307(临时重定向)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。4开头的http状态码表示请求出错400服务器不理解请求的语法。401请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。403服务器拒绝请求。404服务器找不到请求的网页。405禁用请求中指定的方法。406无法使用请求的内容特性响应请求的网页。407此状态代码与401类似,但指定请求者应当授权使用代理。408服务器等候请求时发生超时。409服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。410如果请求的资源已永久删除,服务器就会返回此响应。411服务器不接受不含有效内容长度标头字段的请求。412服务器未满足请求者在请求中设置的其中一个前提条件。413服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。414请求的URI(通常为网址)过长,服务器无法处理。415请求的格式不受请求页面的支持。416如果页面无法提供请求的范围,则服务器会返回此状态代码。417服务器未满足”期望”请求标头字段的要求。5开头状态码并不常见,但是我们应该知道500(服务器内部错误)服务器遇到错误,无法完成请求。501(尚未实施)服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。503(服务不可用)服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。504(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。505(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本。

计算机必备冷知识

2019-05-30 09:36:36 阅读:2477

什么是GPL协议?答:GPL是GeneralPublicLicense(通用公共许可证)的缩写,以GPL协议发布到网上的素材(源码等),你可以使用,也可以更改,但是经过你更改然后再次发布的素材必须也遵守GPL协议,主要要求是必须开源,而且不能删减原作者的声明信息等。换句话说就是,你从网上获取的素材,可以进行修改和添加,但是要保留原作者的所有信息和声明。什么是RISC?答:RISC就是ReducedInstructionSetComputer的简写,也就是“精简指令集计算机”的意思。这是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机)。RISC机中采用的微处理器统称RISC处理器。采用精简指令集的好处是能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。许多当前的微芯片现在都使用RISC概念。x86是32位还是64位?答:X86是处理器架构,有32位的也有64位的。消费级的电脑一般都是假64位的,Intel和AMD为了向下兼容,只是在32位的CPU中加入了64位的指令集,intel的EM64T,AMD的X86-64,所以凡是有这两种指令集的都可以运行64位操作系统,真正的X86架构64位的CPU是intel推出的用在服务器领域的安腾系列的处理器。但是这个跟32位的不兼容,所以现在市场也不是很乐观。4.什么是免费软件?答:“免费软件”(freeware)是一种不须付费就可取得的软件,但是通常有其他的限制,使用者并没有使用、复制、研究、修改和分发的自由。该软件的源代码不一定会公开,也有可能会限制重制及发再行的自由。5.什么是自由软件?答:自由软件的英文为“freesoftware”。“free”在英文中有“自由”(freedom)、“免费”(freeofcharge)的双重含义。大部分的自由软件都是在在线(online)发布,并且不收任何费用;或是以离线(off-line)实体的方式发行,有时会酌收最低限度的费用(例如:工本费),而人们可用任何价格来贩售这些软件。然而,自由软件与商业软件是可以共同并立存在的︰因为禁止贩卖软件是违反了自由软件的定义。6.什么是GNUGPL协议?答:GNUGeneralPublicLicense,GNU通用公共许可证。只要软件中包含了遵循GPL协议的产品或代码,该软件就必须也遵循GPL许可协议且开源、免费,因此这个协议并不适合商用软件。遵循该协议的开源软件数量极其庞大,包括Linux系统在内的大多数的开源软件都是基于这个协议的。GPL开源许可协议最大的4个特点:复制自由、传播自由、收费传播、修改自由,其中收费传播的话,需要让买家知道这个软件是可以免费获得的。7.什么是BSD协议?答:BSD是BerkeleySoftwareDistribution的缩写,意思为:伯克利软件发布版。协议内容为:用户可以使用、修改和重新发布遵循该许可的软件,并且可以将软件作为商业软件发布和销售,前提是需要满足下面3个条件:1.如果再发布软件有源代码,必须遵守bsd协议。如果再发布软件有二进制程序,需要在文档或版权文件中生命代码遵循bsd协议,不允许用原始软件名字和作者名以及机构名称在市场推广8.什么是apache协议?答:ApacheLicence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。要求和bsd协议基本类似,比如你修改了代码,需要在修改的文件中说明,在你新增的代码中,也需要遵循原来的协议,使用者也可以修改代码满足自己需求并作为开源或商业产品发售。9.什么是MIT许可证?答:MIT许可证(TheMITLicense)是许多软件授权条款中,被广泛使用的其中一种。与其他常见的软件授权条款(如GPL、LGPL、BSD)相比,MIT是相对宽松的软件授权条款。有许多团体均采用MIT许可证。例如著名的ssh连接软件PuTTY与XWindowSystem(X11)即为例子。Expat,Mono开发平台库,RubyonRails,Lua5.0onwards等等也都采用MIT授权条款。

Laravel Homestead的安装

2019-05-24 15:14:20 阅读:2374

LaravelHomestead的安装需要安装的软件:Virtualbox https://www.virtualbox.org/Vagrant https://www.vagrantup.com/downloads.html/ (这个下载的时候他一开始很慢,几分钟后突然提速飞一样的感觉)GIT https://git-scm.com/download/win官网为外网:建议使用使用境外服务器下载,再转接二次下载(比如宝塔的链接下载;然后再放到网站目录下载)我的Vagrant安装目录选择在D:/vagrant1.进入D:/Vagrant打开GitBashvagrantboxaddlaravel/homestead (等个十几分钟-------视网速而定关于这一步,网上有很多骚操作。我是不会使用的,因为他们的box镜像文件版本比较低大都在6.2.然而最新的都已经到了7.2.1,我喜欢最新的)vagrantboxlist (查看镜像是否安装完成:)3.克隆LaravelHomestead仓库到D:/vagrant/homesteadgitclonehttps://github.com/laravel/homestead.git进入文件夹cdhomesteadbashinit.sh4.建立你的密钥(如果你没有建立过)ssh-keygen-trsa (一路回车走下去,在默认目录下就有了,无需管理)5.配置Homestead.yaml文件 (在你的 D:/vagrant/homestead下面)文件开头有三条横线,我也不知道干啥的,看他不爽,删之!ip:"192.168.10.10"memory:2048cpus:1provider:virtualboxauthorize:~/.ssh/id_rsa.pubkeys:-~/.ssh/id_rsafolders:-map:D:/homesteadto:/home/vagrantsites:-map:www.a.comto:/home/vagrant/laravel/publicdatabases:-homestead上面内容需要改的就是,folders 和 sitesfolders---你需要映射到环境双向目录,map:本地 to:虚拟环境sites------虚拟环境解析地址 map:地址; to:虚拟环境根目录(一定是你项目的运行根目录)6.在你的(在你的 D:/vagrant/homestead下面)vagrantup 在开启你的OracleVMVirtualBox的情况下执行7.配置好hosts就可以愉快的写代码测试了。 192.168.10.10www.a.com**********注意事项访问你的www.a.com就会自动转至192.168.10.10环境。 因为你的线上实时共享目录是/home/vagrant/laravel/本地实时共享D:/homestead但是映射的运行根目录是/home/vagrant/laravel/public so你的在D:/homestead写个index.php是不行的,要写在D:/homestead/public下面

宝塔安装Redis并使用

2019-05-16 09:13:13 阅读:3706

TheFirst,登录宝塔后台,找到redis,直接点击进行安装,如果你这一步都不知道,那我建议你先去研究一下宝塔后台或者看下面这张图:好,如上图,你已经找到了Redis这个软件,在这一行的最右侧,有安装俩字,点击安装即可。安装完之后,这不代表redis能使用了,因为php还没有安装对应的拓展。TheSecond,安装php的拓展:找到你的php,还是如上图中找redis一样找,找到之后,点击设置,设置点击后有一个弹窗,里面有安装拓展四个字,点击,找到安装redis拓展,如下图,但是由于我的已经安装过了,所以不是安装俩字,是卸载俩字:到了这一步,你以为就安装完了?不不不,你还没有重新加载php环境或者重启服务器呢,我们都知道,Apache的配置文件修改后,需要重启才能生效,同样,php配置修改之后,也需要重启才能生效。啥?你问我怎么重启php??????上图中,安装拓展的上面那行的四个字不就是php服务么,点击重启就行啦。TheThird,按照上面两步来说,已经配置完,并且安装完了,但是中间会有一个奇怪的事情,就是安装redis(非redis拓展)之后,你会发现,图标是红色,而不是绿色!!!纳尼?难道是服务没起来???我遇到过好多次了,起初我也是心慌慌,后来发现,不对啊,虽然显示的是没启动服务,实际上服务已经启动!所以大家不要慌,这应该是算是宝塔的一个bug吧,明明服务已经启动了,但是显示的是已暂停的图标。如下图:好了,全部安装完之后,肯定要试试啊,测试一下呗:这段代码,先显示的是:setok!然后显示的是:thisisfromredis!!!

上报错误