Jump to content
Helio13

Metodo Post não aparace

Recommended Posts

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

Share this post


Link to post
Share on other sites
HappyHippyHippo

queres enviar a string

'{"Name": "John"}'

ou queres enviar o objecto

{"Name": "John"}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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 ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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 é

Share this post


Link to post
Share on other sites
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!?

Share this post


Link to post
Share on other sites
brunoais

Eu acho que é isto o que se está a passar:

https://developer.mozilla.org/en/docs/HTTP/Access_control_CORS

Se bem me lembro... Basta ser um port diferente e é suficiente para activar o protocolo cors.

Edited by brunoais

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.