2016-11-17 5 views
0

Сведения об исключении:вызова службы WCF с JQuery Ajax - получение исключений - входящий запрос не допускаются

Первого шанс исключение типа «System.InvalidOperationException» произошло в System.ServiceModel.Web.dll Дополнительной информации : HTTP-метод «GET» входящего запроса (с URI http://localhost:24342/Test.svc/DoWork?callback=jQuery110203769165082986856_1479380612393&testParameter=TEST&_=1479380612394) не разрешен.

Я пользуюсь 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"; 
    } 
} 

Web Config:

<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> 

Ajax код:

<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 
     }); 
    } 
+0

для стартеров, которые должны быть 'var param = {" testParameter ":" TEST "};' (без кавычек). Он будет сериализовать анонимный объект для вас. –

+0

hi @GoneCoding - Я сделал это, но все равно получаю то же исключение. –

ответ

0

Я был в состоянии решить эту проблему путем создания службы WCF с Ajax встраиваемый.

Смежные вопросы