XMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword)

本文介绍如何使用XMLHttpRequest对象发起GET请求获取服务器资源,并展示了如何解析返回的XML数据。
open创建一个新的http请求,并指定此请求的方法、URL以及验证信息
语法

oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);

参数

bstrMethod
http方法,例如:POST、GET、PUT及PROPFIND。大小写不敏感。

bstrUrl
请求的URL地址,可以为绝对地址也可以为相对地址。

varAsync[可选]
布尔型,指定此请求是否为异步方式,默认为true。如果为真,当状态改变时会调用onreadystatechange属性指定的回调函数。

bstrUser[可选]
如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。

bstrPassword[可选]
验证信息中的密码部分,如果用户名为空,则此值将被忽略。
Example
下面的例子演示从服务器请求book.xml,并显示其中的book字段。

var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET","http://localhost/books.xml", false);
xmlhttp.send();
var book = xmlhttp.responseXML.selectSingleNode("//book[@id=''bk101'']");
alert(book.xml);

备注

调用此方法后,可以调用send方法向服务器发送数据。


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/ftf_tengfei/archive/2007/09/06/1774505.aspx
### XMLHttpRequest `open` 方法的参数传递方式 `XMLHttpRequest` 的 `open` 方法用于初始化一个请求,它接受五个参数,其中前三个是必需的,后两个是可选的。该方法的基本语法如下: ```javascript xhr.open(method, url, async, user, password); ``` - `method`:指定请求的 HTTP 方法,如 `GET`、`POST`、`PUT`、`DELETE` 等。 - `url`:请求的目标 URL,可以是相对路径或绝对路径。 - `async`:布尔值,表示请求是否异步执行,默认为 `true`。 - `user` 和 `password`:用于身份验证的用户名和密码(可选)[^2]。 在实际开发中,大多数情况下只使用前三个参数。例如,发送一个 GET 请求并附加查询参数可以通过将参数拼接到 URL 上实现: ```javascript const xhr = new XMLHttpRequest(); xhr.open('GET', '/api/data?param1=value1&param2=value2', true); xhr.send(); ``` 由于 GET 请求的参数是通过 URL 传递的,因此 `send()` 方法通常传入 `null` 或省略参数[^2]。 如果需要发送 POST 请求并设置请求头以指定数据格式,可以在调用 `open` 后使用 `setRequestHeader` 方法: ```javascript const xhr = new XMLHttpRequest(); xhr.open('POST', '/api/submit', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send('name=value&anothername=anothervalue'); ``` 在异步请求中,`async` 参数设为 `true`,表示请求不会阻塞主线程,响应会在回调函数中处理。可以通过监听 `onreadystatechange` 事件来检测请求状态的变化: ```javascript xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } }; ``` ### 示例:发送带查询参数的 GET 请求 以下是一个完整的示例,展示如何使用 `XMLHttpRequest` 发送带有查询参数的 GET 请求,并动态展示返回的数据: ```javascript const xhr = new XMLHttpRequest(); xhr.open('GET', 'http://127.0.0.1:3000/get3?name=riverrun', true); xhr.send(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { const response = JSON.parse(xhr.responseText); const output = document.getElementById('output'); output.innerHTML = `<p>Server response: ${response.message}</p>`; } }; ``` 上述代码中,查询参数 `name=riverrun` 被附加到 URL 上,服务器返回的响应被解析为 JSON 并动态渲染到页面上[^3]。 ### 总结 `XMLHttpRequest` 的 `open` 方法支持多种参数传递方式,适用于不同类型的 HTTP 请求。GET 请求通常通过 URL 附加查询参数,而 POST 请求则需要设置请求头并传入请求体数据。异步请求的处理依赖于 `onreadystatechange` 事件监听器,确保在请求完成后能够正确处理响应数据。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值