Tôi đang sử dụng jQuery ajax để gọi dịch vụ WCF của tôi bằng HTTP POST. Câu trả lời là GZIP được mã hóa và điều này gây ra sự cố trong môi trường của tôi. (Xem this question). Nếu đáp ứng không phải là mã hóa GZIP thì mọi thứ đều ổn.bài đăng ajax - Tôi muốn thay đổi giá trị tiêu đề Chấp nhận mã hóa
Vì vậy, tìm trong Fiddler, tôi thấy rằng jQuery tạo truy vấn có tiêu đề sau:
Accept-Encoding: gzip,deflate,sdch
Nếu, qua cáy, tôi thay đổi giá trị này để None
, sau đó phản ứng không được nén, đó là những gì Tôi muốn. Tất cả những gì tôi cần làm là thay đổi giá trị trong tiêu đề "Accept-Encoding".
Dường như không thể thay đổi giá trị tiêu đề này thông qua lệnh .ajax
. (Xem this forum post).
Bất kỳ ai cũng có thể cho tôi biết tùy chọn nào tôi phải thay đổi giá trị tiêu đề này.
Đây là nỗ lực hiện tại của tôi. Thông số của tôi headers
dường như bị bỏ qua.
$telerik.$.ajaxSetup({
accepts: 'application/json, text/javascript, */*'
});
var parameters = {
"playerId": args.playerId
};
var dataInJsonFormat = '{ "playerId": ' + args.playerId + '}';
var ajaxCallParameters = {
accepts: 'application/json, text/javascript, */*',
async: true,
cache: false,
contentType: "application/json; charset=utf-8",
url: "../Services/CmsWebService.svc/SendUpdateRequestToPlayer",
headers: { "Accept-Encoding" : "None" },
type: "POST",
data: dataInJsonFormat,
dataType: 'json',
error: function (jqXHR, textStatus, errorThrown) {
var errorString = 'Error thrown from ajax call: ' + textStatus + 'Error: ' + errorThrown;
var displayPanel = document.getElementById('requestStatusUpdateResults');
$telerik.$(displayPanel).text(errorString);
},
success: function (data, textStatus, jqXHR) {
var displayPanel = document.getElementById('requestStatusUpdateResults');
$telerik.$(displayPanel).text(data.d);
}
};
$telerik.$.ajax(ajaxCallParameters);
Liệu câu trả lời trợ giúp này: http://stackoverflow.com/questions/5771878/jquery -ajax-request-change-user-agent – sberry