首先,我知道有很多问题已经被问到,但我真的试图找出问题所在,但没有任何帮助。 我正在使用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 {
}
}
});
}
谢谢大家的每一个答案。
祝你好运
答案 0 :(得分:0)
如果您使用的是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',
答案 1 :(得分:0)
还记得用EnableCors属性
装饰你的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