Web API无法在Fiddler中运行

时间:2013-05-02 18:03:38

标签: c# asp.net-web-api

我创建了一个POST WebApi,我可以调用如下:

<script type="text/javascript">

var TheData = {
    Number: "7181112222",
    Username: "myusername",
    Password: "mypassword",
    enable: "True",
};

$.ajax({
    type: "POST",
    cache: "False",
    url: "http://www.######.com/someapi/api/SettingsConfig",
    data: TheData
}).done(function (msg) {
    alert(msg);
}).error(function (msg) {
    alert('Fail');
});

</script>

运行此代码时,我会收到“成功”的提示。

当我在fiddler中运行此代码时... yipes !!

POST http://www.######.com/someapi/api/SettingsConfig 数= 6464482035&安培;用户名= metheuser&安培;密码= 9999&安培;启用=真

404错误

为什么不一致!

2 个答案:

答案 0 :(得分:1)

在javascript片段中,您发布了一个JSON对象,而在fiddler示例中,它是一个x-www-form-urlencoded字符串。

您是否尝试在请求中加入Content-Type标题:

  • application/x-www-form-urlencoded并发布字符串
  • application/json并发布JSON对象

您的控制器的方法签名是什么样的 - 您是否完全按照第二个示例中的方法进行操作,或者在此之前是否出错?

404在这种情况下实际上意味着什么 - 未找到'数字'/将数据发布为空?

答案 1 :(得分:0)

这种行为有两个可能的原因:

  • 错误的Content-Type应设置为application/json;
  • 您的API未启用CORS(在这种情况下,您不允许从不受信任的域调用API);