跨域jQuery AJAX请求到WCF - 405方法不允许

时间:2012-11-13 12:17:30

标签: wcf web-services rest jquery

我正在为我的移动网络应用构建简单的WCF网络服务。

我正在向$.ajax提出405 - Method not allow请求,而http://http://localhost:35798/RestServiceImpl.svc/json/23回复ReturnJSONData(),即使我$.ajax({ type: "GET", url: "http://localhost:35798/RestServiceImpl.svc/json/34", contentType: "application/json; charset=utf-8", success: function(data) { console.log(data); }, }); 我可以看到namespace RestService{ [ServiceContract] public interface IRestServiceImpl { [OperationContract] [WebInvoke( Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "json/{id}" )] string ReturnJSONData(string id); } } 的结果浏览器。

我经历了100个不同的帖子,但没有一个答案解决了我的问题。

AJAX请求

namespace RestService {
    public class RestServiceImpl : IRestServiceImpl {
        public string ReturnJSONData(string id) {
            return "You requested product " + id;
        }
    }
}

IRestServiceImpl.cs

<?xml version="1.0"?>
<configuration>

    <system.web>
    <compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
    <service name="RestService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour">
        <endpoint address ="" binding="webHttpBinding" contract="RestService.IRestServiceImpl" behaviorConfiguration="web">
        </endpoint>
    </service>
</services>

<behaviors>
    <serviceBehaviors>
        <behavior name="ServiceBehaviour">
            <serviceMetadata httpGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
    </serviceBehaviors>
    <endpointBehaviors>
        <behavior name="web">
            <webHttp/>
        </behavior>
    </endpointBehaviors>
</behaviors>
<standardEndpoints>
    <webHttpEndpoint>
        <standardEndpoint name=""
        helpEnabled="true"
        automaticFormatSelectionEnabled="true"
        defaultOutgoingResponseFormat ="Json"
        crossDomainScriptAccessEnabled="true"/>
    </webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

</configuration>

RestServiceImpl.svs.cs

{{1}}

WebConfig

{{1}}

任何建议都非常感谢。

0 个答案:

没有答案