You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Ajax调用WebAPI时出现的Error code 0问题

解决Ajax调用WebAPI时返回Code:0的问题

看起来你遇到的这个Code: 0错误通常和请求的基础配置或者跨域问题有关,咱们一步步排查解决:

1. 修复Ajax请求的URL格式

你当前的Ajax URL是localhost:3079/api/cities,这里缺少了协议头(http:// 或 https://),浏览器会把它当作当前页面的相对路径来解析,直接导致请求地址错误。

修改后的代码应该是:

$.ajax({
    url: 'http://localhost:3079/api/cities', // 补上http://协议头
    type: 'GET',
    dataType: 'json',
    // ... 其他代码保持不变
});

2. 正确配置WebAPI的CORS(生产环境必备)

虽然你尝试用命令行禁用浏览器网页安全,但这种方法不仅容易配置失效,还只能用于本地临时调试,生产环境完全不可用。正确的做法是在WebAPI项目中主动启用CORS支持:

在ASP.NET Core WebAPI中配置CORS:

  1. 先安装CORS依赖包(如果未安装):
Install-Package Microsoft.AspNetCore.Cors
  1. 在Program.cs(.NET 6+版本)中添加CORS服务并配置允许的跨域策略:
var builder = WebApplication.CreateBuilder(args);

// 添加CORS服务并定义跨域策略
builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowFrontend",
        policy =>
        {
            // 替换成你前端页面的实际地址,比如http://localhost:5500
            policy.WithOrigins("http://localhost:你的前端端口")
                  .AllowAnyHeader()
                  .AllowAnyMethod();
        });
});

// 添加控制器服务
builder.Services.AddControllers();

var app = builder.Build();

// 必须在路由配置前启用CORS
app.UseCors("AllowFrontend");

app.UseRouting();

app.MapControllers();

app.Run();
  1. 也可以直接在控制器或Action上标记启用CORS:
[EnableCors("AllowFrontend")]
[HttpGet()]
public IActionResult GetCities()
{
    return Ok(CitiesDatastore.Current.Cities);
}

3. 用开发者工具定位具体问题

打开浏览器开发者工具的Network标签,重新触发请求,查看以下信息:

  • 请求的完整URL是否正确
  • 请求的实际状态码(比如404、403、500等)
  • Response面板里的具体错误描述
    这些细节能帮你快速定位问题:比如404说明URL仍有误,403则是CORS配置未生效。

4. 确保浏览器禁用网页安全的命令正确(仅本地调试用)

如果还是想用浏览器调试模式,要确保命令行参数完全正确:

  • Chrome浏览器的正确命令:
chrome.exe --disable-web-security --user-data-dir="C:/ChromeDevSession"

注意必须指定--user-data-dir参数,且要关闭所有Chrome窗口后再执行该命令,否则禁用安全的配置不会生效。

按照上面的步骤排查,应该能解决你遇到的问题。

内容的提问来源于stack exchange,提问作者KopMaverick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:37:01