0
예외 정보 :호출 WCF 서비스 JQuery와 아약스에서 - 점점 예외 - 들어오는 요청이 허용되지
'System.InvalidOperationException'형식의 첫째 예외가 System.ServiceModel.Web.dll에서 발생추가 정보 : 들어오는 요청 (URI가 http://localhost:24342/Test.svc/DoWork?callback=jQuery110203769165082986856_1479380612393&testParameter=TEST&_=1479380612394 인)의 HTTP 메소드 'GET'이 허용되지 않습니다.
저는 Ajax 내장 WCF 서비스를 사용하고 있습니다. WCF 클라이언트는 jQuery Ajax 호출이다. 내 코드 :
[ServiceContract(Namespace = "testWCFAjax")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service
{
[OperationContract]
[System.ServiceModel.Web.WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public string DoWork(string testParameter)
{
return "success";
}
}
웹 구성 :
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="ServiceAspNetAjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
<services>
<service name="Service">
<endpoint address="" behaviorConfiguration="ServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="Service"/>
</service>
</services>
</system.serviceModel>
아약스 코드 :
<script src="Scripts/jquery-1.9.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
function CallMyService() {
$.support.cors = true;
var param = '{"testParameter": "TEST"}';
$.ajax({
url: 'http://localhost:24342/Test.svc/DoWork',
data: param,
type: "POST",
dataType: "jsonp",
contentType: "application/json",
success: ServiceSucceeded,
error: ServiceFailed
});
}
은 'var param = { "testParameter": "TEST"}; (따옴표 제외)이어야합니다. 익명 객체를 직렬화합니다. –
안녕하세요 @GoneCoding - 그랬지만 여전히 같은 예외가 발생했습니다. –