【发布时间】:2017-03-31 19:49:25
【问题描述】:
这可能是一个愚蠢的问题,但我正在为此苦苦挣扎这让我可以发布我迄今为止尝试过的代码:
Webapi 代码:
[EnableCors(origins: "http://localhost:8080", headers: "*", methods: "*")]
[HttpGet]
[Route("~/api/getail/{id}/{criteriaid}")]
public IHttpActionResult GetIncidentByResourceID(int id, int criteriaid)
{
IncidentDisplayApiModelCollection collection = objIncidentApiManager.GetDisplayList(id, criteriaid, 4);
return Json(collection);
}
这是示例 ajax 请求:
<script src="js/jquery-3.2.0.min.js"></script>
<script >
$(document).ready(function(){
$.ajax({
url: "http://localhost:8080/sf/api/getail/1848/29",
dataType: "json",
success: function( response ) {
console.log( response ); // server response
},
error: function( response ) {
console.log( response ); // server response
}
});
});
</script>
在 Firefox 控制台中得到的是:
Object { readyState: 0, getResponseHeader: .ajax/y.getResponseHeader(), getAllResponseHeaders: .ajax/y.getAllResponseHeaders(), setRequestHeader: .ajax/y.setRequestHeader(), overrideMimeType: .ajax/y.overrideMimeType(), statusCode: .ajax/y.statusCode(), abort: .ajax/y.abort(), state: .Deferred/e.state(), always: .Deferred/e.always(), catch: .Deferred/e.catch(), 9 more… } index.html:59:9
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/sf/api/getail/1848/29. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
我已经在 nuget manager 中下载了 cors 并添加了 confi.enablecors();在 webapi 配置中。谁能帮我解决这个问题提前谢谢!!
【问题讨论】:
-
在将其标记为重复之前,我已经解释过我已经尝试了该问题中的所有方法,但仍然无法正常工作
-
您的 ajax 代码托管在哪个域(IP 地址)中?
-
不是 ip 它只是来自文件
-
CORS 问题发生在源地址和目标地址不同的情况下。你必须在某个 url 上测试这个 ajax 请求说:localhost:3000
-
我给出的是正确的IP地址
标签: jquery ajax asp.net-web-api c#-3.0