Javascript 使用jQuery.getJson获取Web API

Javascript 使用jQuery.getJson获取Web API,javascript,jquery,asp.net,api,Javascript,Jquery,Asp.net,Api,我是ASP.NET Web API的初学者。 无法使用jQuery.getJson()获取ASP.NET Web API 这失败了: 这成功了: 我认为这是因为跨域请求,但这成功了: 然后我尝试添加“jsoncallback=?”,但也失败了: 值控制器: 命名空间WebApplication1.控制器{ 公共类值控制器:ApiController { //获取api/值 公共IEnumerable Get() { 返回新字符串[]{“value1”,“value2”}; }` `//获取api

我是ASP.NET Web API的初学者。
无法使用
jQuery.getJson()
获取
ASP.NET Web API

这失败了:

这成功了:

我认为这是因为跨域请求,但这成功了:

然后我尝试添加“jsoncallback=?”,但也失败了:

值控制器:

命名空间WebApplication1.控制器{
公共类值控制器:ApiController
{
//获取api/值
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}`
`//获取api/values/5
公共字符串Get(int-id)
{
返回“值”;
}
//后api/值
公共作废帖子([FromBody]字符串值)
{
}
//将api/values/5放入
公共void Put(int id,[FromBody]字符串值)
{
}
//删除api/values/5
公共无效删除(int-id)
{
}
}
}
}您需要在WebAPI中启用CORS。首先,安装此Nuget,然后将此行添加到WebApiConfig:

config.EnableCors(new EnableCorsAttribute("*","*","*"));
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {

        config.EnableCors(new EnableCorsAttribute("*","*","*"));

        // Web API configuration and services
        // Configure Web API to use only bearer token authentication.
        config.SuppressDefaultHostAuthentication();
        config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
WebApiConfig:

config.EnableCors(new EnableCorsAttribute("*","*","*"));
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {

        config.EnableCors(new EnableCorsAttribute("*","*","*"));

        // Web API configuration and services
        // Configure Web API to use only bearer token authentication.
        config.SuppressDefaultHostAuthentication();
        config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }

只有在服务器支持JSONP的情况下,才可以将客户端代码更改为使用JSONP。
namespace WebApplication1.Controllers{
public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }`

    `// GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE api/values/5
    public void Delete(int id)
    {
    }
}
config.EnableCors(new EnableCorsAttribute("*","*","*"));
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {

        config.EnableCors(new EnableCorsAttribute("*","*","*"));

        // Web API configuration and services
        // Configure Web API to use only bearer token authentication.
        config.SuppressDefaultHostAuthentication();
        config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }