Ajax 到 WCF 服务

Posted

技术标签:

【中文标题】Ajax 到 WCF 服务【英文标题】:Ajax to WCF Service 【发布时间】:2017-05-29 13:29:06 【问题描述】:

我有一个 WCF 服务(支持 Ajax),我需要使用 AJAX 调用它的方法。 WCF 服务名称为 NameService.svc,它位于网站根目录的 WebService 文件夹中。事情是这样工作的:我必须创建一个用户控件,其中包括一个包含文本字段的表格布局以收集用户数据,当单击按钮时,我需要使用 jQuery 和 Ajax 调用将数据插入到数据库。我尝试了以下代码,但它对我不起作用,我需要知道我在用户控件中遗漏了什么或写错了:

$(function() 
  $('button').click(function() 
    var name = $('text').val();
    $.ajax(
      url : 'NameService.svc/InsertData',
      data :  suppliername : name ,
      method : 'post',
      datatype : 'json',
      success : function(data) 
        alert(data);
      
    );
  );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

 <table class="table">
  <tbody>
    <tr>
      <td>Supplier Name:</td>
      <td><input type="text" name="sname"></td>
    </tr>
    <td colspan="2"><button type="button" class="btn btn primary">Insert</button></td>
  </tbody>
</table>

注意我在我的项目中使用 Bootstrap。使用按钮元素而不是类型为提交的输入元素是否有问题?我在 ajax 调用的 url 中错过了什么? WCF 服务中的方法是否应该使用特定属性进行修饰?如果我将调用一个只返回数据的方法,我应该在 Ajax 调用中使用 data 属性还是忽略它,该方法也将被发布到或者应该以这种方式获取。

【问题讨论】:

【参考方案1】:

如果你正在为 http post 和 get 做 $.ajax。我会推荐你​​观看来自https://www.udemy.com/rest-wcf-service-in-aspnet/learn/v4/t/lecture/5225772的教程

检索数据后,您可以从 svc.cs 进行数据库连接并将这些数据导入您的数据库。我假设您已经知道如何进行数据库连接。如果没有,只需在线搜索一下,您可能就会知道。

但是,如果您的数据是嵌套的 json 格式,我不知道。我也被打动了……叹气

【讨论】:

我知道的所有感谢词对你来说都不够,先生,我搜索了好几个小时才知道这些视频中的内容,但是我仍然坚持使用 POST 方法类型,因为我使用的是 WCF 服务(Ajax -enabled)并且它与视频中使用的不同,当使用 .NET 框架 4.5.1 时,服务接口和 .cs 文件被添加到单独的 App_Code 文件夹中。在这种情况下,我不知道如何调整 web.config。看来我会使用 .NET framework 4.0 来克服这个问题并完成我的工作。

以上是关于Ajax 到 WCF 服务的主要内容,如果未能解决你的问题,请参考以下文章

AJAX 文件上传到 WCF 服务的工作示例

jQuery - 使用 ajax 调用将 JSON 发送到 WCF 服务为空

将数据从 jquery ajax 请求传递到 wcf 服务失败反序列化?

启用从 jQuery ajax 到不在 IIS 中托管的 WCF 服务的 CORS POST

如何在 ajax 客户端中使用作为 Windows 服务运行的 wcf 服务

如何避免 jquery ajax 中使用 wcf 服务的跨域策略?