否'访问控制允许来源'标头存在于请求的资源上

No 'Access-Control-Allow-Origin' header is present on the requested resource

本文关键字:请求 资源 于请求 访问控制 存在      更新时间:2023-09-26

首先,我知道有人问了很多关于这方面的问题,但我确实试图找出问题所在,但没有任何帮助。我正在使用C#、ASP.NET、Javascript、AJAX,并试图使用API来获取一些信息,但我每次都会收到这个错误。当我尝试使用不同的API时,效果非常好。API状态为活动,但每次响应都失败。

错误看起来像:1

我在配置文件中添加了权限:

  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>

但这对我没有帮助。我现在该怎么办?我试了几个小时,结果还是一样。

尝试在ajax调用中添加jsonp和crossDomain,但这对我也没有帮助。

    $.ajax({
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        crossDomain : true,
        dataType: 'jsonp',
        url: url + id,
        type: 'GET',
        contentType: 'application/json;',
        success: function (valid) {
            if (valid) {
            } else {
            }
        }
    });
}

感谢大家的每一个回答。

向致以最良好的问候

如果您正在使用ASP.NET Web Api,请尝试在http配置中启用cors。

        public static void Register(HttpConfiguration config)
    {            
        config.EnableCors();
        config.MapHttpAttributeRoutes() .......

我成功地对这样一个API进行了ajax调用,如…

            $.ajax({
            url: url,
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',

还记得用EnableCors Attribute 装饰Api控制器

[EnableCors(origins: "*", headers: "*", methods: "*")]
public class TestController : ApiController
{
    // Controller methods not shown...
}

更多信息,请访问:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

相关文章: