一、PHP
认识PHP
- PHP是一种创建动态交互性站点的服务器端脚本语言
PHP开源、免费、应用广泛 【例如】:Facebook、WordPress - PHP能够生产动态页面内容
- PHP能够创建、打开、读取、写入、删除以及关闭服务器上的文件
- PHP能够接收表单数据
- PHP能够发送并取回cookies
- PHP能够添加、删除、修改数据库中的数据
- 能够限制用户访问网站中的某些页面
……
PHP兼容WEB服务器【例如】:Apache 、IIS
PHP支持数据库【例如】:MySQL、Oracle、SQL Server
运行PHP
- XAMMP,http://www.apachefriends.org/download.html
- 在Dreamweaver中配置web服务器用于本地测试
PHP测试页面
- PHP脚本以<?PHP开头,以?>结尾
- PHP文件的默认文件扩展名是.php
- PHP语句以分号结尾(;)
二、JSON基本概念
- JSON:JavaScript对象表示法(JavaScript Object Notation)
- JSON:是存储和交换文本信息的语法,类似XML。它采用键值对的方式来组织,易于人们阅读和编写,同时也易于机器解析和生成
- JSON是独立于语言的,也就是说不管什么语言,都可以解析json,只需要按照json的规则来就行。
JSON与XML比较
- json的长度和xml格式比起来很短小
- json读写的速度更快
- json可以使用JavaScript内建的方法直接进行解析,转换成JavaScript对象,非常方便
JSON语法规则
JSON数据的书写格式是:名称/值对。
名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:比如"name":"郭靖"。json的值可以是下面这些类型:
数字(整数或浮点数),比如123,1.23
字符串(在双引号中)
逻辑值(true或false)
数组(在方括号中)
对象(在花括号中)
null
{
"staff":[
{"name":"洪七","age":70},
{"name":"郭靖","age":35},
{"name":"黄蓉","age":30}
]
}
JSON校验工具
用jQuery实现Ajax
- jQuery.ajax([settings])
- type:类型,"POST"或"GET",默认为"GET"
- url:发送请求的地址
- data:是一个对象,连同请求发送到服务器的数据
- dataType:预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断,一般我们采用json格式,可以设置为"json"
- success:是一个方法,请求成功后的回调函数。传入返回后的数据,以及包含成功代码的字符串
- error:是一个方法,请求失败时调用此函数。传入XMLHttpRequest对象
【补充】不用下载,引用在线的JQ库。
<script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.js"></script>
三、跨域
- 一个域名地址的组成:
- 当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域
- 不同域之间相互请求资源,就算作“跨域”
【比如】:http://www.abc.com/index.html请求 http://www.efg.com/service.php
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。
www.abc.com/index.html调用www.abc.com/service.php(非跨域)
www.abc.com/index.html调用www.efg.com/service.php(跨域)
www.abc.com/index.html调用bbs.abc.com/service.php(跨域)
www.abc.com/index.html调用www.abc.com:81/service.php(跨域)
www.abc.com/index.html调用https://www.abc.com/service.php(跨域)
处理跨域方法一——代理
- 通过在同域名的web服务器端创建一个代理:
- 北京服务器(域名:www.beijing.com)
上海服务器(域名:www.shanghai.com)
-比如在北京的web服务器的后台
(www.beijing.com/proxy-shanghaiservice.php)来调用上海服务器
(www.shanghai.com/service.php)的服务,然后再把响应结果返回给前端,这样前端调用北京同域名的服务就和调用上海的服务效果相同了。
处理快递方法二——JSONP
-
JSONP可用于解决主流浏览器的跨域数据访问的问题。
处理跨域办法三——XHR2
- HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能
- IE10以下的版本都不支持
- 在服务器端做一些小小的改造即可:
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET');
end.
本笔记整理自慕课网