javascript - AJAX 不会从 Web api C# 返回值

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

我有一个用 C# 创建的简单 Web api,它是一个返回字符串的方法

    public string Get()
    {
        return "Welcome Web API online";
    }

我现在通过javascript调用它,它成功击中了母鹿,但它不会返回任何数据,它总是陷入错误函数,

var url = "https://localhost:44381/api/accounts";

$.ajax({
    type: 'GET',
    dataType: 'json',
    url: url,
    success: function (data) {
        console.log(data);
    },
    error: function (data) { console.log(data); }
});

检查控制台日志,显示:

跨源请求被阻止:同源策略不允许读取 https://localhost:44381/api/accounts 处的远程资源?

请赐教。

最佳答案

当我们使用 Ajax、Angular 等访问具有不同源的 URL 时,需要在不同源端处理 CORS(跨源请求共享)。 将以下代码添加到您的 Web api 项目中。在 Global.asax.cs 文件

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

        if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
            HttpContext.Current.Response.End();
        }
    }

我对你有帮助。这对我有用。

关于javascript - AJAX 不会从 Web api C# 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57917763/

相关文章:

c# - 使用 HttpClient 通过 AttributeRouting 在 URL 中发送日期

azure - Web API 和 Azure API 应用程序有什么区别?

asp.net-web-api - ValidateAntiForgeryToken如何与可通过Web或 native 应用程序访问的Web API配合使用?

javascript - Angular 4 如何封装页面结构/路由?

c# - 将 x.y 转换为 a/b,其中 x.y = a/b c#

javascript - 在 JavaScript 中指定 eval() 的范围?

c# - 数据库连接字符串信息

c# - "The given path' 不支持 s 格式”尝试根据当前时间创建文件时

javascript - 如何自动将 TypeScript 转译为 JavaScript?

javascript - 访问 JSON 数组中的对象 (JavaScript)