none
Consumir um serviço através de Ajax/JSON não vai RRS feed

  • Pergunta

  • Olá pessoal tenho um serviço que estou tentando consumir via Ajax no Jquery, mas sempre retorna [object Error] no IE e no Chrome não vem nada, segue a chamada numa página HTML: 

     

    	<script src="http://code.jquery.com/jquery-1.5.js"></script>
    	<script type="text/javascript">
    		jQuery.support.cors = true;
    		$(document).ready(function () {
    			$.ajax({
    				type: 'GET',
    				url: 'http://NOTE2:9877/TesteWCF/retornaTeste/',
    				processData: true,
    				cache: false,
    				crossDomain:true,
    				data: ({id:3}),
    				dataType: "json",
    				contentType:"application/json",
    				success: function (data) { alert('teste'); },
    				error: function (xhr, ajaxOptions, thrownError) {
    					alert(thrownError);
    				}
    			});
    		});
    	</script>
    

     

    No meu serviço inicializo assim:

     

    <?xml version="1.0"?>
    <configuration>
    	<startup>
    		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    	</startup>
    	
    	<system.diagnostics>
    		<sources>
    			<source name="System.ServiceModel" switchValue="Error" propagateActivity="true">
    				<listeners>
    					<add name="HostingLogging"
    					type="System.Diagnostics.XmlWriterTraceListener"
    					initializeData="e:\temp\HostingLogging.svclog" />
    				</listeners>
    			</source>
    		</sources>
    	</system.diagnostics>
    	<system.serviceModel>
    		<bindings>
    			<webHttpBinding>
    				<binding name="webBinding"/>
    			</webHttpBinding>
    		</bindings>
    		<behaviors>
    			<endpointBehaviors>
    				<behavior name="jsonBehavior">
    					<enableWebScript/>
    				</behavior>
    			</endpointBehaviors>
    			<serviceBehaviors>
        <behavior name="defaultBehavior">
         <serviceDebug includeExceptionDetailInFaults="true" />
         <serviceMetadata httpGetEnabled="true" />
        </behavior>
       </serviceBehaviors>
    		</behaviors>
    		<services>
    			<service name="TesteVirtualLib.ServicoTeste">
    				<endpoint address="http://NOTE2:9877/TesteWCF"
         binding="webHttpBinding"
         bindingConfiguration="webBinding"
         contract="Controller.ITesteWCF"
         behaviorConfiguration="jsonBehavior"/>
    			</service>
    		</services>
    		<diagnostics>
    			<messageLogging
    					 logEntireMessage="true"
    					 logMalformedMessages="true"
    					 logMessagesAtServiceLevel="true"
    					 logMessagesAtTransportLevel="true"
    					 maxMessagesToLog="65535000"
    					 maxSizeOfMessageToLog="500"/>
    		</diagnostics>
    		<standardEndpoints>
    			<webScriptEndpoint>
    				<standardEndpoint name="" crossDomainScriptAccessEnabled="true"/>
    			</webScriptEndpoint>
    		</standardEndpoints>
    	</system.serviceModel>
    </configuration>
    

     

    Na minha interface:

     

    		[OperationContract]
    		[WebGet(ResponseFormat=WebMessageFormat.Json)]
    		int retornaTeste(int id);
    

    Quando tento rodar no IE navegador retorna: [object Error], no Chrome abre um alert vazio, enfim eu preciso retornar estes dados através de Json, mas não estou conseguindo fazer. Ao executar o serviço diretamente na URL, retorna {"d":17}.

    Não sei o que estou fazendo de errado.

    Agradeço qualquer ajuda.

     

     


    Se for útil marque como tal, se for a resposta, marque-a também. Procure ajudar a quem mais precisa
    sexta-feira, 18 de março de 2011 21:42

Respostas

Todas as Respostas