Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

Helio13

Metodo Post não aparace

Mensagens Recomendadas

Helio13    2
Helio13

Boas pessoal.

Estou a tentar fazer um post com dados por json, de uma aplicação client para o server, mas quando faço, em vez de fazer o post, ele faz um options e dá erro 400 bad request...

Alguém me sabe explicar o porque?

O que estou a fazer é isto

$(document).ready(function ()
    {
	    $.ajax(
	    {
		    type: "POST",
		    url: "http://localhost:1117/Service1.svc/GetDataName",
		    data: '{"Name": "John"}',
		    dataType: 'json',
		    contentType: "application/json; charset=utf-8",
		    //crossdomain: true,
		    success: function (data) {
			    alert(data);
		    },
		    error: function (xhr, status, error) {
			    alert("failed " + error);
		    }
	    })
   });

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nelsonr    333
nelsonr

Normalmente é em string. Costumo é usar ao contrário (data: "{'Name': 'John' }")

O código no geral não parece ter nada de mal, mas nunca usei com serviços, apenas com páginas "normais" (.aspx).

E no meu caso apenas tinha o nome da página e não o endereço completo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1139
HappyHippyHippo

como o código parece bem, o erro deverá estar aqui :

http://localhost:1117/Service1.svc/GetDataName

esse endereço está correcto ? é válido ? executa algo correctamente ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Helio13    2
Helio13

Ja vi que o problema está no lado do servidor agora...

Mas não estou a ver onde...pois tenho o serviço a correr...

O meu código esta assim

Service1.svc.cs:

namespace Teste
{
   public class Service1 : IService1
   {
    public string GetData()
    {
	    string getdata = "hello";
	    return string.Format("You entered" + getdata);
    }
    public string GetDataName(string Name)
    {
	    return string.Format("You entered" + Name);
    }
   }
}

IService1.cs:

namespace Teste
{
   [serviceContract]
   public interface IService1
   {
    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "GetData", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
    string GetData();
    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "GetDataName", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
    string GetDataName(string Name);
}
}

Sabes me dizer o que pode estar mal?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Helio13    2
Helio13

Pois não...

E dá me o seguinte erro:

failed Cannot process the message because the content type 'application/json; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'.

Quando faço o post...

Está alguma coisa mal no C#, mas não sei o que é

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Helio13    2
Helio13

Sim, ja tinha visto esse, mas eu altero como ele ai diz...e o serviço abre no browser e não dá...

Não sei se tenho que mudar o meu web.config!?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.