使 WCF 服务接受来自 jQuery.AJAX() 的 JSON 数据

2023-12-10

我已经搜索了几个小时并尝试了不同的方法来使其发挥作用。我在 stackoverflow 上尝试了很多文章,要么是我太蠢了,无法让事情正常工作,要么是我有一些独特而奇怪的配置,阻碍了我体验快乐。

我创建了本教程概述的 WCF 服务:

http://www.codeproject.com/Articles/97204/Implementing-a-Basic-Hello-World-WCF-Service

它是超级基本的并且有一种方法,我想要它做的就是允许我使用 json 通过 jQuery.AJAX() 来使用它。

我把它托管在 IIS 中并且可以正常工作。我可以毫无问题地访问 WSDL。

我尝试使用以下代码来使用它:

$.ajax({
    dataType: 'json',
    type: 'POST',
    contentType: "application/json",
    url: "//localhost:546/HelloWorldService.svc/GetMessage",
    data: {
        name: "Joe"
    }
    }).done(function(msg){
        console.log(msg);
        $("#result").append(msg);
});

我总是出错。根据我的尝试,我收到了 500 个错误、402 错误、有关不正确内容的错误......所有错误。

我尝试实施以下文章中的解决方案。它们的范围从让我更改 web.config 端点(我知道我必须更改它们,但到目前为止我尝试过的所有方法都无法在添加 JSON 端点方面起作用)到添加诸如

[WebInvoke(Method = "POST", UriTemplate = "json/PostSalesOrderData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]

到界面。

以下是我看过的一些文章,并试图深入研究我的解决方案以使其正常工作,但没有取得太大成功。

Phonegap Android 上的 Javascript JSON 和 WCF Web 服务

HTTP/1.1 415 无法处理消息,因为内容类型为“application/json;” charset=utf-8' 不是预期的类型 'text/xml;字符集=utf-8'

具有 JSON、JSONP 和 SOAP 端点的 WCF 服务

两个端点(soap、json)和一个服务方法

WCF REST 服务不接受 .Net 4 中的 JSON

我还浏览了本教程,并尝试使用他所说的内容来使我的解决方案发挥作用。依然没有!

http://www.primordialcode.com/blog/post/passing-json-serialized-objects-wcf-service-jquery

这就是我的界面的样子

[ServiceContract]
public interface IHelloWorldService
{
    [OperationContract]
    [WebInvoke(UriTemplate = "GetMessage", Method = "POST",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json)]
    String GetMessage(String name);
}

谁能帮我体验快乐?

预先感谢您甚至查看我的问题。如果您需要更多信息或者我没有提供足够的信息,请告诉我,以便我可以帮助您!

我一定是错过了一些愚蠢的东西......我知道这并不难。

EDIT:

工作 Web.Config

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="false" targetFramework="4.0" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="WebHTTPEndpointBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="MyServiceTypeBehaviors">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="MyWebServiceBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="MyWCFServices.HelloWorldService"
       behaviorConfiguration="MyServiceTypeBehaviors">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="MyWebServiceBinding" behaviorConfiguration="WebHTTPEndpointBehavior"
          contract="MyWCFServices.IHelloWorldService"/>
        <endpoint contract="IMetadataExchange"
          binding="mexHttpBinding" address="mex"/>
      </service>
    </services>
  </system.serviceModel>
</configuration>

改变这一行

data: {
    name: "Joe"
}

to

data: JSON.stringify({name: 'Joe'});

EDIT:

为您的服务执行此操作。在配置中添加 WebHttp 绑定。

 <behaviors>
  <endpointBehaviors>
    <behavior>
      <webHttp />
    </behavior>
  </endpointBehaviors>
</behaviors>

希望你知道在哪里添加这个。如果没有,请告诉我,我会尽力提供一些意见。

EDIT:

跟进我的评论,

<behavior name="myBehaviorName">
      <webHttp />
</behavior>

<service name="MyWCFServices.HelloWorldService"
         behaviorConfiguration="MyServiceTypeBehaviors">
    <endpoint address="" binding="webHttpBinding"
         contract="MyWCFServices.IHelloWorldService" behaviorConfiguration="myBehaviorName"/>
    <endpoint contract="IMetadataExchange"
       binding="mexHttpBinding" address="mex"/>
  </service>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使 WCF 服务接受来自 jQuery.AJAX() 的 JSON 数据 的相关文章

  • Firefox 不会在使用 jQuery AJAX 加载的内容上呈现 CSS 样式

    我有一个网站 允许用户对书籍和文章发表评论 主表单有一个搜索输入 用于查找相关书籍或文章 来源 我使用 jQuery 根据输入的搜索词从外部站点动态加载新源 然后还使用 AJAX 返回列表中的源 我有两个问题 现在 在用户输入四个字符后 j
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • Chrome//kendoUI/jQuery:超出最大调用堆栈大小

    我正在使用 hottowell 模板来创建 spa 应用程序 并且我从 jquery 中收到了一个很好的错误 基本上我的问题从此刻开始尝试绑定我的视图 viewModelBinder js 来自 durandal 库 viewModelBi
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 捕捉到最近的标记

    我正在使用 GoogleMaps 并且我有 2 个或更多标记 并且它们是可拖动的 我想捕捉 2 个标记 如果它们靠近 并将它们合并为 1 个 这可能吗 有人可以给我指点吗 我怎样才能意识到这一点 你需要处理拖动事件 on the GMark
  • NSWindow 关闭并重新打开后崩溃

    我创建了一个 NSWindow self storeWindow NSWindow alloc initWithContentRect NSMakeRect 100 100 800 660 styleMask NSWindowStyleMa
  • 在 Xcode 4.5 中,“C++ 标准库”和“C++ 语言方言”的“默认编译器”是什么?

    Xcode 4 5 中 C 标准库 和 C 语言方言 的 编译器默认值 的值是多少 我的猜测是 libstdc 和 GNU 98 但最好能澄清一下 来自Xcode 4 5 发行说明 使用此 Xcode 版本创建的项目使用新的 libc 标准
  • 在 Java 中使用 Apache POI 生成文档间超链接

    我正在使用 Apache POI 生成 XWPFDocument 在此之前从未使用过它 并且我想将同一个 docx 文档中的一个段落链接到另一个段落 使用 POI 的本机功能是否可以实现这一点 或者我是否需要深入研究 XML Bean 包装
  • 正则表达式 - 返回名字和姓氏

    我正在寻找最可靠的方法返回给定全名的人的名字和姓氏 到目前为止我能想到的最好的是以下正则表达式 name preg replace b p L b b p L b i 1 2 name 预期的输出应该是这样的 William gt Will
  • 使用camel-redis设置redis键/值

    我想使用camel redis 设置键 值对 我尝试 spring redis localhost 6379 command SET CamelRedis key testkey CamelRedis value 100 但没有喜悦 我收到
  • winapi CreateWindowEx -> 创建具有用户系统样式的按钮?

    我想制作一个看起来像 我的电脑 gt 帮助 gt 关于 Windows 时的 确定 按钮的按钮 我正在创建一个像这样的按钮 hButton CreateWindowEx WS EX CLIENTEDGE TEXT BUTTON TEXT T
  • PHP 根据类名解析 HTML 行

    如何获取具有特定类名的所有行 例如 tr class dailyeventtext valign top 然后将该行中的每个单元格放入一个数组中 我使用 cURL 从客户端服务器获取页面 matches array dom new DOMD
  • iOS:如何使用滑块设置自定义背景颜色?

    首先 我想说我在这个网站上看到了一些关于如何做到这一点的帖子 尽管似乎没有一个对我有用 所以请不要关闭它 直到我让它工作 我想要做的是使视图的背景根据滑块的值而变化 以便用户可以选择他们想要的背景颜色 self gt colorView b
  • Asp Core 3.1 API JsonIgnore(不)在反序列化中被忽略

    我有这个设置 Asp 核心 3 1 API 在 API 和客户端之间发送的具有 MyClass 的共享库 带有 Com 类的客户端应用程序 On the MyClass他们之间发送的我有一个字段ComField引用 com 类 这仅在客户端
  • 如何缓存 Firebase 数据以供离线使用?

    我构建了捆绑 JSON 数据的应用程序 我想切换到 Firebase 作为后端 但我需要确保即使 Firebase 离线也可以访问数据 无法保证用户在启动应用程序时能够连接到互联网 数据由相当大的 JSON blob 组成 我听说 fire
  • 有没有办法通过sql server复制来复制数据库中的一些数据而不是所有数据?

    我想复制数据库中存在的一些数据 我想复制指定的数据 有解决办法吗 使用复制行过滤器 使用静态行过滤器 你可以 选择行的子集 发表 所有订阅者 过滤后的出版物收到相同的结果 已过滤表的行子集 替代文本 http i msdn microsof
  • 406 不可接受:Spring 3.2 + JSON + AJAX

    搜索了大量的网站 甚至 stackoverflow 但还没有找到解决这个问题的方法 看起来很多人都遇到过这个问题 但似乎缺少一个涵盖所有方面的统一解决方案 已经花了1 5天了 我看到该方法正在被调用 但在某个地方 ResponseBody没
  • Simics使用SMM吗?

    我想了解 QSP x86 项目是否正在模拟 SMM 我没有在 GUI 调试器的可用寄存器 内存中看到任何表明我可以查看 SMRAM SMI 处理程序代码的方法 因此我想知道是否可以使用它来调试一些 SMM 代码 我发现一个页面写着 The
  • HAML - “!=”运算符的作用是什么?

    我现在正在查看一些看似标准的 Haml 代码 但只是注意到它以 开头 并且 5 分钟的谷歌搜索未能给我它的作用的答案 What does the mean cache content if not prefetched params do
  • 为什么我无法使用 javascript 清除输入字段?

    我想清除并更改给定网址上输入的值 我使用的js不执行任何操作 也不会导致任何错误 为什么会发生这种情况以及如何解决它 Test public void clearField throws Exception String url https
  • CUDA 抱怨 nvcc 是“不受支持的工具链”

    我在 CUDA 中制作了一个一维卷积程序 但由于某种原因 可执行文件无法运行 因为 CUDA 抱怨 提供的 PTX 是使用不受支持的工具链编译的 此错误在第一个 CUDA 库函数上抛出 我的程序是用 nvcc 编译的 我使用的命令正是 nv
  • Android 和 Java 中加密/解密字符串的不同值

    我使用这段代码在 Java 和 Android 中加密和解密一些字符串 并且在每个系统中我得到不同的值 我使用的代码来自http www androidsnippets com encryptdecrypt strings 我不会粘贴它 因
  • 获取 pandas DataFrame 中的非空元素

    我有一个DataFrame我想获取一些非空元素作为列表 具体来说 给定df df pd DataFrame a A None B b None C D c E F None a b c 0 A None E 1 None C F 2 B D
  • 使 WCF 服务接受来自 jQuery.AJAX() 的 JSON 数据

    我已经搜索了几个小时并尝试了不同的方法来使其发挥作用 我在 stackoverflow 上尝试了很多文章 要么是我太蠢了 无法让事情正常工作 要么是我有一些独特而奇怪的配置 阻碍了我体验快乐 我创建了本教程概述的 WCF 服务 http w