js获取webservice天气
JavaScript 获取 Web Service 天气预报是一项常见的Web开发任务,它涉及到使用 AJAX (Asynchronous JavaScript and XML) 技术与Web服务进行异步通信,获取特定城市的天气信息。在这个示例中,我们看到一个通过JavaScript调用SOAP(Simple Object Access Protocol)Web服务来获取天气预报的方法。以下是关键知识点的详细解释: 1. **AJAX**: AJAX允许在不重新加载整个网页的情况下,与服务器交换数据并更新部分网页内容。在这里,`PostRequestData`函数实现了AJAX请求,通过创建`ActiveXObject`对象(适用于旧版IE浏览器)来发送POST请求。 2. **SOAP**: SOAP是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。在示例中,`getWeatherbyCityName`是SOAP调用的服务方法,用于根据城市名获取天气信息。 3. **XMLHttpRequest对象**: `ActiveXObject("Microsoft.XMLHTTP")`创建了一个XMLHttpRequest对象,它是实现AJAX的核心。它具有`open`、`setRequestHeader`和`send`等方法,分别用于设置请求类型、添加请求头和发送请求数据。 4. **请求头设置**: `SetRequestHeader`方法用来设置HTTP请求头。在这里,`Content-Type`指定了发送的数据类型为XML,而`SOAPAction`定义了我们要调用的SOAP操作。 5. **POST请求**: `Open`方法用于初始化请求,`POST`参数表示我们将发送数据到服务器。`false`参数表示请求是非异步的,即函数会阻塞直到服务器响应。 6. **错误处理**: 使用`try...catch`块捕获可能出现的异常,并返回错误信息。 7. **状态检查**: 如果服务器返回的状态码是200(表示成功),则`responseText`或`responseXML`可以获取服务器的响应。这里,`responseXML`被返回,因为它是一个XML文档,与SOAP响应匹配。 8. `loadit`函数: 这个函数接受城市名和日期类型(今天、明天、后天)作为参数,构建SOAP请求的数据。根据`day`参数,设置`theDayFlag`值。 9. **SOAP请求体构建**: `buildWeather`函数用于构建SOAP请求的XML结构。XML数据包含在`<soap:Envelope>`和`<soap:Body>`标签内,请求参数如城市名和日期标志分别封装在对应的XML元素中。 10. **解析响应**: `buildWeather`函数还负责解析返回的XML文档,提取出天气信息。虽然在这个示例中没有展示完整的解析过程,但通常会使用DOM(Document Object Model)API来遍历XML结构并提取所需的数据。 11. **浏览器兼容性**: 注意,这个示例使用了`ActiveXObject`,这是IE浏览器特有的。对于其他现代浏览器,应使用`XMLHttpRequest`构造函数而不是`new ActiveXObject()`。同时,为了跨浏览器兼容性,可以使用`window.XMLHttpRequest`或`XMLHttpRequest.prototype.open`等更现代的API。 总结来说,这个示例展示了如何使用JavaScript通过SOAP调用Web服务获取天气信息的基本步骤,包括构建和发送SOAP请求,处理响应,以及解析返回的XML数据。在实际应用中,可能需要对这个示例进行扩展,例如处理错误,优化性能,以及支持更多浏览器。
剩余9页未读,继续阅读
- swot20202013-05-22我下载了,怎么用不了,谁给个指点?
- 鑫惠2013-10-15很实用,谢谢
- qq_185406352015-02-12网上很多,这个例子也很详细 可刚刚试了 为毛satus一直为0,返回空数据
- oSuoZheng2013-05-15很不错的东西,对我很有帮助
- 冰冻的龙2015-07-03还可以,有点帮助
- 粉丝: 1
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助