javascript调用webservice

微信公众号 2011-10-09 07:04:16
在学习了用C#调用webservice后,特别希望在html里用javascript调用webservice(天气预报的:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx),搜了很多资料,但都以失败告终……唉,js菜鸟很无奈啊……急求高人指点,最好附上完整代码和注释,不胜感激!
...全文
281 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangwenjie7331982 2014-06-25
  • 打赏
  • 举报
回复
我知道 楼主的 意识 先用本域的 ashx 程序调用跨域的 webservice 然后 用js 调用 ashx 吗?
hellNo 2011-10-10
  • 打赏
  • 举报
回复
qq1119753812 2011-10-10
  • 打赏
  • 举报
回复
我说2点,因为我以前做过这个方面的一点点研究
1是如果是跨域,那么需要你使用jsonp方式去调用,而且被调用方也要有配合的格式;
2如果不考虑跨域,假设ws在同一个域,你也需要知道ws只能用post方式来调用

听雪江湖 2011-10-10
  • 打赏
  • 举报
回复
案例
webservice
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;

/// <summary>
///WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{

public WebService()
{

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}

[WebMethod]
public string HelloWorld()
{
return "Hellow World";
}

}

JS

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script type="text/javascript">
function RequestWebService() {
//这是我们在第一步中创建的Web服务的地址
var URL = "http://localhost/YBWS/WebService.asmx";

//在这处我们拼接
var data;
data = '<?xml version="1.0" encoding="utf-8"?>';
data = data + '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">';
data = data + '<soap12:Body>';
data = data + '<HelloWorld xmlns="http://tempuri.org/" />';
data = data + '</soap12:Body>';
data = data + '</soap12:Envelope>';

//创建异步对象
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("POST", URL, false);
xmlhttp.SetRequestHeader("Content-Type", "application/soap+xml");
xmlhttp.Send(data);

document.getElementById("data").innerHTML = xmlhttp.responseText;
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div>
<input id="One" type="button" value="JsCallWebService" onclick="RequestWebService()" />
</div>
<div id="data">
</div>
</form>
</body>
</html>
badyue 2011-10-09
  • 打赏
  • 举报
回复
AJAX不一定都要用ashx处理程序, 你可以用JS 异步调用 Webservice 然后接收返回的值,一般是XML 或JSON 然后解析 改变某容器的InnerHTML
微信公众号 2011-10-09
  • 打赏
  • 举报
回复
AJAX ? 这个不是都要用ashx处理程序的吗?从网上下的demo里,就是用js写的,也用了一点jquery,但遗憾的是,demo老是报错……菜鸟,急求高人指点
licip 2011-10-09
  • 打赏
  • 举报
回复
那这个用到跨域了。你去网上搜一下,跨域的ajax方法吧。
豆虫 2011-10-09
  • 打赏
  • 举报
回复
楼主说的是ajax结合webservice吧~~

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧