【问题标题】:Error with Ajax-Enabled WCF Service (JSON) when consuming from jquery .ajax()从 jquery .ajax() 消费时启用 Ajax 的 WCF 服务 (JSON) 出错
【发布时间】:2011-11-14 02:54:43
【问题描述】:

不幸的是,它只在调用 .ajax() 时遇到错误条件,而 textStatus(第二个参数)只说“错误”。我已经阅读了有关 stackoverflow 的几个示例和其他问题,但一定遗漏了一些东西。提前感谢您的帮助。

WCF 服务:

[ServiceContract(Namespace = "http://localhost/")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Items
{
    [OperationContract]
    [WebGet]
    public string HelloWorld()
    {
        return "Hello World.";
    }
}

WCF Web.config

仅相关部分... 服务:

<services>
  <service name="OService.ReadServices.Items">
    <endpoint address="soap" binding="basicHttpBinding" contract="OService.ReadServices.Items"/>
    <endpoint address="json" binding="webHttpBinding"  behaviorConfiguration="jsonBehavior" contract="OService.ReadServices.Items"/>
  </service>
</services>

行为:

<endpointBehaviors>
    <behavior name="jsonBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>

jQuery

$(document).ready(function () {
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "http://localhost/OService/ReadServices/Items.svc/json/HelloWorld",
        data: "{}",
        dataType: "json",
        success: function (msg) {
            alert("success: " + msg.d);
        },
        error: function (xhr, textStatus, errorThrown) {
            alert("error: " + textStatus + " - " + errorThrown + " - " + xhr);
        }
    });
});

【问题讨论】:

  • 检查 FireBug 中的响应(Firefox 插件)

标签: c# jquery ajax wcf


【解决方案1】:

这个回复有点晚了,但是您将 Web 方法定义为 [WebGet],但在您的 Jquery Ajax 方法中将其称为 POST 请求。将[WebGet] 替换为:

[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)].

【讨论】:

  • 首先,在这么久之后回复 +1...不幸的是,我不再使用这种类型的代码,因为我已经开始使用 WebApi,所以我无法测试原始问题,但我同意您的回复,这似乎可以解决问题 - 我认为我什至没有意识到我当时在 javascript 调用中有 POST。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
相关资源
最近更新 更多