【问题标题】:WebAPI not working in FiddlerWebAPI 在 Fiddler 中不起作用
【发布时间】:2013-05-03 04:03:02
【问题描述】:

我创建了一个 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!!

发布 http://www.######.com/someapi/api/SettingsConfig Number=6464482035&Username=metheuser&Password=9999&enable=True

404 错误

为什么不一致!

【问题讨论】:

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


    【解决方案1】:

    在 javascript sn-p 中,您发布的是 JSON 对象,而在提琴手示例中,它是 x-www-form-urlencoded 字符串。

    您是否尝试在请求中包含 Content-Type 标头:

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

    您的控制器的方法签名是什么样的 - 您是完全点击了第二个示例中的方法还是在此之前出错了?

    404 在这种情况下实际上意味着什么 - 'number' not found / post data null ?

    【讨论】:

      【解决方案2】:

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

      • 不正确的Content-Type 应该是application/json 值集;
      • 未在您的 API 上启用 CORS(在这种情况下,您不允许从不受信任的域调用 API);

      【讨论】:

        猜你喜欢
        • 2013-02-07
        • 2017-06-27
        • 2016-01-25
        • 1970-01-01
        • 1970-01-01
        • 2018-11-02
        • 2019-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多