我正在使用的第三方服务非常特别。我正在尝试将接受标头设置为
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);
}
});
答案 0 :(得分:0)
根据W3C规范,设置请求标头应该附加到任何现有值,因此它已经是'* / *'并且您在请求附加'application / json'之前设置它。
此外,根据this,规范现在要求'* / *'作为接受值,因此您的服务器违反了规范(我不知道您的问题)。
您想要的是浏览器在设置之前清除'* / *'的现有值,因此可以致电:
setRequestHeader('Accept', '')
在您的AJAX请求之前?这将取决于浏览器,所以你可能会有一些IE乐趣。