发送对象的JQuery问题(OPTIONS请求而不是POST)

时间:2013-03-26 11:27:11

标签: jquery asp.net-mvc json web-services

我有一个Web服务,它返回了一个JSON对象Prueba

public class Prueba
{
  public string valor1 { get; set; }
  public string valor2 { get; set; }
}

public JsonResult Pruebas(Prueba item)
{
   string metodo = Request.HttpMethod;
   return Json("error", JsonRequestBehavior.AllowGet);
}

我想用JQuery调用Web服务:

$.ajax({
            type: 'Post',
            dataType: 'json',
            url: 'http://localhost:24780/Api/Pruebas',
            data:'{"valor1":"a","valor2":"b"}',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                console.debug(data);
            },
            error: function (data) {
                console.debug(data);
            }
        });

问题是Request.method取值OPTION而不是POST。对象值也是null。

我已经使用SOAP UI测试了Web服务而没有遇到任何问题,但我找不到为什么它不能与JQuery一起使用。

2 个答案:

答案 0 :(得分:0)

您尝试发送字符串而不是对象。这就是为什么在服务器错误上你检索任何东西而不是一个对象。尝试替换它:

data:'{"valor1":"a","valor2":"b"}',

到此:

data:{"valor1":"a","valor2":"b"},

答案 1 :(得分:0)

通过使用单引号将对象设为字符串。 这就是你没有获得对象价值的原因