如果希望设计一个优秀丰富的应用,基础知识的理解和实践是很重要的。
<PHP5 权威编程>是一本优秀的教材,从中我将学会很多网站建设的知识。感谢作者和分享的互联网。
PHP 程序处理来自各种用户的请求,表单负责收集用户的输入,最后用户代理接受到服务器的响应数据。这是编写交互网站的基础印象,也是互联网的主要的运作过程。
AJAX 技术是一种请求数据的方式,它的特点是通过一个客户端对象向服务器发送请求,并且在收到响应后调用相应的函数处理数据,前端开发者可以编写函数更新页面内容,而不需要刷新页面。
在编写完异步请求代码之后,并没有得到预期的效果。于是打开 Chrome 的调试工具,控制台输出显示
XMLHttpRequest cannot load (注此处为在另一个服务器上的php文件). Origin (注此处为发送请求的页面所在的域名) is not allowed by Access-Control-Allow-Origin.
这是浏览器采取的一种策略,简单说,不同域名的文件在Ajax请求中不能访问。
回想了一会,<script>标签允许跨域请求,只要在服务器的脚本文件中输出一个函数调用就能实现对响应数据的处理了。因为用户代理接收到的是一个可能包含特殊字符的文本数据,如果不在 PHP 脚本中使用 addslashes() 函数对文本进行转义处理,那么浏览器接收到的可能是不合法的编码。
在实现 PHP脚本中,考虑到如果为每个PHP文件都使用输出函数调用而实现跨域请求,代码量会增加。我想到了书中提到的架构,在单一文件中处理所有的请求,我重新设计了一个php脚本,它除了接收脚本所需要的输入数据,也接收一个参数,它指定处理请求的页面。
这是间接调用,在 PHP编码时采用的一种代码分离。