看论坛帖子,初次测试ajax功能时大多会遇到Ajax跨域问题导致的无法正常实现ajax通信。
1.问题呈现
报错如下:
原因:
报次错原因就是由于ajax涉及到跨域问题导致的。没有在服务器环境里运行含有ajax方法的页面,而是直接通过浏览器打开文件。(类似file:///的访问形式,即file协议) 。
解决策略:
ajax()请求本地页面,须通过服务器环境运行。
2.一次成功的本地测试ajax通信
-
WampServer介绍
要在本地测试AJAX,首先是环境的搭建,我在本机安装的是WampServer。
WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。
WampServer就是Windows Apache Mysql PHP集成安装环境,即在window下的apache、php和mysql的服务器软件。
-
下载安装wamp
下载网址:wamp下载https://sourceforge.net/projects/wampserver/
安装:傻瓜式安装,一路点击下一步,安装完成后,双击桌面上wamp的快捷方式启动wamp。
安装过程会提示在哪个浏览器中使用,默认是本机的IE浏览器,如果想使用chrome,选择chrome.exe的路径即可。
问题:安装完成wamp后,双击桌面上的图标,如果提示丢失MSVCR110.DLL缺失,如下错误:
上述问题解决方法:
下载Visual C++ Redistributable for Visual Studio 2012 Update 4即可解决。
下载网址:https://www.microsoft.com/zh-CN/download/details.aspx?id=30679
安装完成再次打开wamp,右下角图标已经由橘色变为绿色,PHP环境也正常。
访问apache,显示界面就成功了。
在wamp安装目录下有一个www文件夹,用来测试的文件都保存在这个文件夹中 -
ajax通信代码编写
这个例子要创建两个页面。一个是前台的html页面ajax-get.html,用来发送请求和显示服务器返回来的响应结果,一个是后台的php文件,我命名为ajax.php,用来接收请求。发送ajax请求五步骤(XMLHttpRequest 的原理)
(1)创建XMLHttpRequest 对象。(2)使用open方法设置请求的参数。open(method, url, 是否异步)。
(3)发送请求send()。
(4)注册事件。 注册onreadystatechange事件,状态改变时就会调用。
(5)获取返回的数据,更新UI。
html页面ajax-get.html的代码如下:
<!DOCTYPE html> <html