我正在尝试发送一个ajax请求到WebAPI服务接受头'application/json'
当我在服务中设置断点时,我看到接收报头以"/"的形式出现。这对我来说行不通,因为我们的代码会检查"已知"的媒体类型,如果找不到,就会拒绝请求。
这是ajax请求在它的当前状态:
$.ajax({
url: requestUrl,
type: 'GET',
accept: {
json: 'application/json'
},
success: function(response, status, xhr) {
displayUsers(response);
},
error: function(xhr, status, exception) {
alert(exception);
}
});
我已经在IE, Chrome和Firefox中尝试过了。都一样。
您的响应(或OPTIONS响应,在预飞行CORS的情况下)是否包含Access-Control-Allow-Headers: accept
允许接受头,当您进行跨域请求?我的猜测是你没有,浏览器切换到发送*/*
的默认行为。
我仍然不清楚真正的问题是什么,但我能够通过设置header集合而不是像通常那样只接受header来解决它:
$.ajax({
url: requestUrl,
type: 'GET',
headers: {
'Accept' : 'application/json'
},
success: function(response, status, xhr) {
displayUsers(response);
},
error: function(xhr, status, exception) {
alert(exception);
}
});