Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用jquery.Ajax()时,启用Ajax的WCF服务(JSON)出错_C#_Jquery_Ajax_Wcf - Fatal编程技术网

C# 使用jquery.Ajax()时,启用Ajax的WCF服务(JSON)出错

C# 使用jquery.Ajax()时,启用Ajax的WCF服务(JSON)出错,c#,jquery,ajax,wcf,C#,Jquery,Ajax,Wcf,不幸的是,它只在调用.ajax()时遇到错误条件,而textStatus(第二个参数)只显示“error”。我已经通读了几个关于stackoverflow的例子和其他问题,但肯定遗漏了一些东西。提前感谢您的帮助 WCF服务: [ServiceContract(Namespace = "http://localhost/")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMod

不幸的是,它只在调用.ajax()时遇到错误条件,而textStatus(第二个参数)只显示“error”。我已经通读了几个关于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>

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


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

首先检查FireBug(Firefox addmin)中的响应,+1用于在这么长时间后回复。。。不幸的是,我不再使用这种类型的代码,因为我已经开始使用WebApi,所以我无法测试最初的问题,但我同意你的回答,似乎这会解决它-我甚至没有意识到我当时在javascript调用中有帖子。
<endpointBehaviors>
    <behavior name="jsonBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
$(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);
        }
    });
});