浏览器允许跨域请求的情形:
IMG、LINK、SCRIPT、IFRAME ...
浏览器禁止跨域请求的情形:
XHR —— 浏览器处于安全考虑,禁用了XHR的跨域请求(其实服务器给出了响应消息,但浏览器不让使用)
面试题:我们公司项目很大,页面很多,出于性能考虑,把静态资源(html等)放在服务器上了,把动态资源(php)放在服务器上了,如何让一个x.html异步请求x.php呢?
如何解决浏览器的XHR跨域请求限制 —— 八种方案:
(1)
(2)
(3)
(4)
(5)
(6)
(7) 修改响应消息头部,添加Access-Control-Allow-Origin头部
(8) 使用JSONP
1.AJAX阶段项目——京东购物车
功能点描述
(1)异步的用户登录
(2)异步的显示商品列表,实现分页显示
(3)异步的添加到“我的购物车”
(4)查看“我的购物车”
(5)异步的修改“我的购物车”
实现步骤: SQL => PHP => HTML/JS
(1)编写SQL:jd.sql,名jd,
创建表:jd_user(uid, uname, upwd)
创建表:jd_product(pid, pname, price, pic)
创建表:jd_cart( cid, userId )
创建表:jd_cart_detail(did, cartId, productId, count)
(2)编写PHP:data/header.php,包含页头必需的HTML片段
(3)编写PHP:data/footer.php,包含页尾必需的HTML片段
(4)编写HTML:productlist.html,待页面加载完成,异步加载页头和页尾。
(5)编写PHP:user_login.php,接收客户端提交的uname和upwd,执行验证,返回 {"code":1, "uname":"qiangdong", "uid":10} 或 {"code":2, "msg":"用户名或密码错误" }
(6)修改HTML:productlist.html,默认显示出登录对话框,异步登录验证,失败则提示错误消息,成功则清除掉对话框,显示“欢迎回来:xxxx”
(7)编写PHP:product_select.php,向客户端输出所有的产品信息,以JSON格式:[{},{},{},....]
(8)修改HTML: productlist.html,页面加载完后,异步请求所有的产品
-------------------文华的进度线---------------------
(9)编写PHP:cart_product_add.php,接收客户端提交uid、pid,添加入购物车详情表,若已有该商品,则购买数量+1 —— 需要执行多条SQL语句,有挑战性!
2.表单序列化
$(‘#formId‘).serialize( );
jQuery中提供的表单序列化函数,可以把选定的表单中所有带name属性的输入域连同值转换为k=v形式,全部使用&符号拼接在一起,组成一个大的字符串,用于异步请求数据提交。
复习:
Web服务器
静态: HTML/CSS/JS/SWF/音视频 —— 客户端执行
动态: JSP/PHP/ASPX/Node.js —— 服务器端执行
PHP基础语法:
数据类型:
值类型:string boolean int float
复合类型:object array
特殊类型:null resource
运算符: . =>
逻辑结构: foreach($list as $k=>$v){ }
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-79238-12.html
还好了好多话