0

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

当我运行此代码时,我会收到“成功”的警报。

当我在提琴手中运行此代码时...耶!

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

404错误

为什么不一致!

4

2 回答 2

1

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

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

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

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

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

于 2013-05-02T19:37:43.570 回答
0

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

  • Content-Type应该设置的值不正确application/json
  • 未在您的 API 上启用CORS(在这种情况下,您不允许从不受信任的域调用 API);
于 2013-05-02T20:03:02.290 回答