为什么我的接受头不断从应用程序/json更改为*/*



我正在尝试发送一个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);
        }
    });

相关内容

  • 没有找到相关文章

最新更新