Jquery Ajax调用WEB API

cha*_*ara 5 javascript ajax asp.net-mvc jquery asp.net-web-api

我正在尝试对WEB API方法进行简单的jquery ajax调用.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script type="text/javascript">

    $(document).ready(function () {

        $.ajax({
            type: 'POST',
            url: 'http://redrock.com:6606/api/values/get',

            dataType: "jsonp",

            crossDomain: true,
            success: function (msg) {

                alert("success");

            },
            error: function (request, status, error) {

                alert(error);
            }
        });
    });

</script>
Run Code Online (Sandbox Code Playgroud)

WEB API动作:

 public IEnumerable<string> Get()
  {
     return new string[] { "value1", "value2" };
  }
Run Code Online (Sandbox Code Playgroud)

ajax调用没有访问WEB API.我在浏览器控制台中收到以下错误.

获取http://redrock.com:6606/api/values/get?callback=jQuery18207315279033500701_1383300951840&_=1383300951850 400(错误请求)

elo*_*los 2

您尚未包含路由设置的代码,但假设它是正确的,问题可能是由于您在尝试使用 POST 请求访问 WebApi 方法时将其命名为“Get”而引起的。发生这种情况是因为 WebApi 尝试从操作名称中找出 HTTP 动词。

我建议重命名该操作或将该[HttpPost]属性添加到您的操作方法中。您还可以尝试WebApiRouteDebugger包。