jquery 1.4.4发送接受头完全像'application / json'

时间:2012-11-29 22:47:20

标签: jquery jquery-1.4

我正在使用的第三方服务非常特别。我正在尝试将接受标头设置为

Accept: application/json

但是jquery 1.4.4不会发送那个。它不断发送变种,即:

Accept: */*, application/json

我尝试了一些变化,即下面的变化。我怎样才能让它在accept头中发送'Accept:application / json'?

jQuery.ajax({
    url: "/rest/cms.country",
    beforeSend: function (xhr) { xhr.setRequestHeader('Accept', 'application/json'); },
    contentType: "application/json; charset=utf-8",
    type: 'get',
    success: function () {
        console.log('success');
    },
    error: function (jqXHR, textStatus, errorThrown) {
        console.log('error' + errorThrown);
    }
});

1 个答案:

答案 0 :(得分:0)

根据W3C规范,设置请求标头应该附加到任何现有值,因此它已经是'* / *'并且您在请求附加'application / json'之前设置它。

此外,根据this,规范现在要求'* / *'作为接受值,因此您的服务器违反了规范(我不知道您的问题)。

您想要的是浏览器在设置之前清除'* / *'的现有值,因此可以致电:

setRequestHeader('Accept', '')
在您的AJAX请求之前

?这将取决于浏览器,所以你可能会有一些IE乐趣。