【发布时间】:2017-10-10 16:37:35
【问题描述】:
我在同一个解决方案中有一个 ASP.Net Core 和一个 Web Api 项目。我从我的 Api 项目中定义的核心项目中调用 Get、Post、Put、Delete。当然我需要启用 CORS。
下面是我在我的 Web Api web.config 文件中添加的代码,
<httpProtocol>
<customHeaders>
<!-- Enable Cross Domain AJAX calls -->
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
</customHeaders>
</httpProtocol>
还有我来自 Core 项目的 Ajax 代码,
$.ajax({
"url": "myApiUrl",
"type": "Get",
"data": {
//Here I'm passing a value
},
success: function (d) {
}
我将这两个项目都设置为启动项目。没什么大不了。它正在调用 Api 方法并返回数据。但有时它没有返回任何内容,即使该方法返回数据,我在问题标题中提到的browser console 中也遇到了错误。我在SO中查了很多答案,包括this one,都说我需要在我的response header中添加access control。任何人都告诉我我需要在哪里准确添加以及我需要添加什么才能按预期工作。
我也检查了 Asp.net MVC 项目而不是 Core,同样的事情发生了。
注意:我在我的 Web Api 项目中添加了 CORS,而不是在我的 Web 项目中。
【问题讨论】:
-
是否在 Web API 操作中启用了授权,即授权属性?
-
没有。目前,我提供的所有 Api 方法都无需身份验证
-
好的。您能否展示一下您是如何启用 CORS 的?
-
我已经在帖子中提到了,我已经在Web Api项目的Web.Config文件中添加了这两行。
标签: ajax asp.net-mvc asp.net-web-api asp.net-core cors