나는 이것을 몇 시간 동안 검색해 왔으며이를 작동시키기 위해 여러 가지 시도를 해왔다. 나는 stackoverflow에 너무 많은 기사를 시도하고 나도 일을 얻으려면 너무 어리 석거나 나는 기쁨을 경험하지 못하게 막는 독특하고 이상한 구성을 가지고있다.WCF 서비스 만들기 jQuery.AJAX()에서 JSON 데이터 수락
http://www.codeproject.com/Articles/97204/Implementing-a-Basic-Hello-World-WCF-Service
그것은 매우 기본적인 하나 개의 방법이 있고 내가하고 싶은 모든 날 jQuery.AJAX 그것을 소비 할 수있다() :
나는이 튜토리얼에 의해 설명 된 WCF 서비스를 만들 json을 사용합니다.
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의 끝점을 변경할 필요 범위 인터페이스에
[WebInvoke(Method = "POST", UriTemplate = "json/PostSalesOrderData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
같은 추가 것들 (나는 내가 그들을 변경해야하지만 시도 아무것도 지금까지 JSON 엔드 포인트를 추가하는 측면에서 작동하지 않습니다 알고있다).
여기 제가 살펴본 기사 중 상당수가 성공하지 못하게하기 위해 내 해결책을 강타하려고 시도한 기사가 있습니다.
Two endpoint (soap ,json) and one service method
WCF REST Service not accepting JSON in .Net 4
WCF Services with JSON, JSONP and SOAP End Points
Javascript JSON and WCF webservice on Phonegap Android
나는이 자습서를 가서 그가 내 솔루션 작업을 얻기 위해 무슨 말을했다 사용하려고했습니다. 아직도 아무것도!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);
}
사람이 나에게 기쁨을 경험 도와 드릴까요 모습입니다?
내 질문을 미리 보아 주셔서 감사합니다. 더 많은 정보가 필요하거나 충분한 정보를 제공하지 못 했으므로 도와 드리겠습니다.
나는 어리석은 뭔가를 놓치고 있어야합니다 ... 나는 이것이 어렵지 않다는 것을 알고 있습니다.
편집 :
Working Web.구성
<?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>
감사를 추가하는 것을 잊었다. 그래도 여전히 500 오류가 발생하고 있습니다 ... 나는 문제가 service/web.config가 반드시 .ajax 호출이 아닌 것으로 생각합니다. – Steve
오류 설명은 무엇입니까? 및 귀하의 URL 주소 "url :"//localhost:546/HelloWorldService.svc/HelloWorldService "하지만 GetMessage를 호출하는 중입니까? 여기에 문제가 있습니까? –
좋아, 의견에 따라 진행했습니다. URL을 Localhost : 546/HelloWorldService.svc/GetMessage로 변경했습니다. 이제 다음과 같은 오류가 있습니다 : POST http : // localhost : 546/HelloWorldService.svc/GetMessage 415 (내용 유형 'application/json '는 예상 유형'application/soap + xml; charset = utf-8 '이 아니 었습니다.) – Steve