【发布时间】:2014-02-05 07:06:12
【问题描述】:
我想只通过 javascript / jquery 访问 asp.net 网络服务,而无需任何 c# 代码..
我已经生成了如下所示的简单网络服务..
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
[WebMethod]
public string TestNameService(string name)
{
return "data-" + name;
}
在另一个域上,我使用文本框和按钮发送请求,并且在标签上我想显示输出。
喜欢这个
<asp:TextBox ID="txt_name" runat="server"></asp:TextBox>
<asp:Button ID="call_service" runat="server" Text="Call Service" OnClientClick="CallService(); return false;" />
<asp:Label ID="lblMsg" runat="server" Text="" />
我曾尝试使用在同一域中工作的这个 jquery.. 但我无法访问多个域上的方法,如果我访问方法,那么我只会得到空白响应
<script type="text/javascript">
function CallWebService() {
$.ajax({
type: "POST",
url: "http://......myurl..../WebService.asmx",
data: "{'name':'" + $("#txt_name").val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: ShowData,
error: error
});
}
function ShowData(data, status) {
$("#lblMsg").html(data.d);
}
function error(request, status) {
alert(request.statusText);
}
</script>
【问题讨论】:
-
你试过用jquery ajax方法调用webservice吗?
-
@mayur 是的,我已经尝试过了,但它不起作用..
-
您遇到了什么错误?
-
@Brad larson - 这不是你编辑的问题。它也是一个答案,因为它在同一个域中工作。我想在多域中运行,所以我写了答案,以便其他用户可以使用..谁需要通过同一域中的 java 脚本运行 Web 服务..如果你有答案,那么说其他明智的不要编辑问题,因为你改变了问题的方向..
-
@Brad Larson 我没有任何问题。一些用户想知道我的同一域的脚本,所以我发布了答案以获得多个域的修改答案。你知道这个问题吗?您可以使用 mayur borad 给出的 jquery 看到相同的答案。该 ans 也适用于同一域。如果您知道任何答案,布拉德我仍在等待答案,然后给出答案,除了修改问题和 cmets。我已经发布了脚本作为答案,因为我希望用户的不同想法代替相同的脚本想法,所以如果可能的话,请保持我的问题/答案不变。谢谢。
标签: c# javascript jquery asp.net web-services