【问题标题】:The equivalent of C# consuming a WCF method in JavaScript (jQuery)相当于 C# 在 JavaScript (jQuery) 中使用 WCF 方法
【发布时间】:2013-06-15 11:51:48
【问题描述】:

我有一个正在运行的 WCF 服务,它公开了一个方法 GetStuff(String type)。由自动创建的客户端类调用,语法简单到令人尴尬。

ServiceClient client = new ServiceClient();
String response = client.GetStuff("other's");
client.Close();

直截了当的问题是这样的。 如何以简单的方式将其转换为 JavaScript 中的调用(可能使用 jQuery)?

经过一番认真的谷歌搜索后,我得出的结论是,我只会找到有关如何使用 jQuery 使用 JSON 格式的流的示例。如果可能的话,我宁愿不接触软件的服务端。

我尝试了下面的代码(以及我能想到的一堆衍生产品),但我得到的错误是“No Transport”并且谷歌搜索没有产生任何我得到的东西去。

$.ajax({
  type: "GET",
  url: "http://hazaa.azurewebsites.net/Service.svc",
  success: function (response) { console.info(response); },
  error: function (response) { console.error("Error! " + response.statusText); }
});

我是否必须编写一个完全不同的服务来以 JSON 格式公开数据?如何指定服务应该调用这个或那个方法?我运气不好,这些方便的方法仅适用于 .NET 客户端?

请注意,我还有另一种方法可以在我想要的地方获取数据,根本不使用 JavaScript,但我更愿意看看这是否也(容易)可行。

【问题讨论】:

    标签: c# javascript jquery wcf


    【解决方案1】:

    我会将服务器方法转换为使用 web 调用 = WebInvoke 属性。这里可以指定方法调用的uri。

    Link to the info

    【讨论】:

    • 感谢您的信息。出现了两个问题 - 我应该将 WebGet 更改为 WebInvoke 还是两者都保留?此外,更重要的是 - 这足以使用我在我的问题中引用的 JavaScript 吗?文章没有给出任何 JS 例子……
    • 你可以保留 WebGet。使用 Webinvoke,您还可以使用 get 动词,但您必须指定它。这应该足以使用 get 调用该方法。还要指定 uri 模板。您还可以指定消息的格式。试试这个link
    • Ir 解决了这个问题。显然,由于 CORS(不同的来源),我将不得不使用 JSONP,所以我得到的印象是我需要在服务器端实现另一种方法并且暴露端点是不够的.. . 对,我有点不喜欢JS。 :)
    【解决方案2】:

    查看 Jquery SOAP .. http://plugins.jquery.com/soap/ 等。 我自己还没有尝试过,但这是你可能需要的那种东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2011-03-08
      相关资源
      最近更新 更多