ajax学习:AJAX学习—发送请求

设置服务器 URL
首先要清楚 Ajax 采用的是一种沙箱安全模型。因此,Ajax 代码(具体来说就是 XMLHttpRequest 对象)只能对所在的同一个域发送请求。在本地机器上运行的代码只能对本地机器上的服务器端脚本发送请求。
要想发送请求,就必须要确定连接的服务器的 URL,这是很自然的事情,也并不是 Ajax 的特殊要求,因为这是建立连接所必需的。至于如何构造 URL,方法有很多,多数应用程序中都会结合一些静态数据和用户处理的表单中的数据来构造该 URL。因为Ajax 采用的是沙箱安全模型,只能连接到同一个域,所以实际上 URL 中并不需要域名。比如:
var phone = document.getElementById("phone").value;
var url = "/cgi-local/lookupCustomer.php?ph45%" align=right border=0>
打开请求(open() 是打开吗?个人感觉选用这个名字不是一个好的选择)
有了要连接的 URL 后就可以配置请求了。可以用 XMLHttpRequest 对象的 open() 方法来完成。该方法有五个参数:
request-type:发送请求的类型。典型的值是 GET 或 POST,但也可以发送 HEAD 请求。
url:要连接的 URL。
asynch:如果希望使用异步连接则为 true,否则为 false。该参数是可选的,默认为 true。
username:如果需要身份验证,则可以在此指定用户名。该可选参数没有默认值。
password:如果需要身份验证,则可以在此指定口令。该可选参数没有默认值。
通常使用其中的前三个参数。事实上,即使需要异步连接,也应该指定第三个参数为 “true”。这是默认值,但坚持明确指定请求是异步的还是同步的更容易理解。request.open("GET", url, true);这就是使用 open() 方法需要的全部内容了。
发送请求
一旦用 open() 配置好之后,就可以发送请求了。我们可以用send()方法实现。
send() 只有一个参数,就是要发送的内容。事实上,GET 请求(在典型的 Ajax 应用中大约占 80%)中,用 URL 发送数据要容易得多,此时不需要通过 send() 传递数据,则只要传递 null 作为该方法的参数即可。如果需要发送安全信息或 XML,可能要考虑使用 send() 发送内容(这方面的内容以后会补充上)。

指定回调方法
这里我们要用到的是xmlHttpRequest的 onreadystatechange 属性。该属性允许指定一个回调函数,指出当服务器响应了我们的请求之后,应该进行如何处理。之所以称为回调是因为服务器向网页发起调用,注意是服务器调用客户端本地的方法,无论网页本身在做什么。因此需要特别注意的是该属性在代码中设置的位置 —— 它是在调用 send() 之前 设置的。发鍊
Tags:  ajax教程 ajax的学习 ajax学习视频 ajax学习

延伸阅读

最新评论

发表评论