2013-07-27 70 views
1

我已经做了一些更改,现在得到415不支持的媒体类型。 我发布了更新的代码。 我的Web服务接口。Asp.Net Web服务415不支持的媒体类型错误

服务/ IWebService.cs

[OperationContract] 
    [WebInvoke(Method = "POST", 
     BodyStyle=WebMessageBodyStyle.Wrapped, 
     RequestFormat=WebMessageFormat.Json, 
     ResponseFormat=WebMessageFormat.Json, 
     UriTemplate = "http://localhost:50571/Service/WebService.svc/hello/say")] 
    string hello(Deneme deneme); 

[DataContract] 
public class Deneme 
{ 
    [DataMember] 
    public string say { get; set; } 
} 

我的Web服务。 服务/ WebService.svc

[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class WebService : IWebService 
{ 
    public string hello(Deneme deneme) { 
     return deneme.say; 
    } 

客户端代码。 中的Login.aspx

$.ajax({ 
     type: 'POST', 
     url: '/Service/WebService.svc/hello', 
     data: { 'say': 'sdfs' }, 
     contentType: 'application/json; charset=utf-8', 
     dataType:'json', 
     success: function (s) { 
      alert(s.d); 
     } 
    }); 

Web配置

<system.serviceModel> 
    <services> 
     <service name="TETP.Service.WebService"> 
      <endpoint address="" 
      behaviorConfiguration="" 
      binding="basicHttpBinding" 
      contract="TETP.Service.IWebService" /> 
     </service> 
    </services> 
<behaviors> 
    <serviceBehaviors > 
    <behavior name=""> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" /> 
<client> 
    <endpoint address="http://localhost:50571/Service/WebService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWebService" contract="TETP.Service.IWebService" name="BasicHttpBinding_IWebService" /> 
</client> 

经常拿400错误请求错误。现在我得到415不支持的媒体类型错误提前谢谢。

回答

0

我认为你的数据请求可能需要引用与你尝试的不同,但我不确定。我建议在调用调试之前添加数据警报。见下文..

var mData = "{userName:'" + $('#usernametxtbx').val() + "',password:'" + $('#passwordtxtbx').val() + "'}"; 
alert(mData); 
$.ajax({ 
     type: 'GET', 
     url: 'Service/WebService.svc/Login', 
     data:{userName:$('#usernametxtbx').val(),password:$('#passwordtxtbx').val()}, 
     dataType: 'application/json; content=utf-8', 
     contentType: 'json', 
     success: function (res) { 
     if(res.d == true) 
      window.location.replace(ResolveUrl('Default.aspx')); 
      else 
       window.location.replace(ResolveUrl('Login.aspx')); 
     } 
    }); 
+0

这不是它。即时消息发送json我也可以只是做var data = {userName:$('#usernametxtbx')。val()}并发送数据 –

相关问题