我正在使用JQuery向我自己的Web服务发出一个AJAX-Request.我需要User-Agent为HTTP-AJAX-Request 设置或修改HTTP-Header,我怎样才能以最简单的方式做到这一点?
我尝试了一些用户提供的提示使用setRequestHeaderMethod来设置User-Agent,但这不起作用.它确实适用于其他新创建的标题(如X-Test-Header),但它不起作用User-Agent.
谢谢!
我有一个包含过滤文本框和列表框的网页.对文本框的修改会触发AJAX请求,该请求返回一个值数组,用于填充列表框.
我有时会遇到这些调用失败的问题,这取决于返回的数据大小.小型返回数据将导致错误,返回大型数据并成功处理.
只有当我使用大于4.2的jQuery版本时才会出现此问题.如果我使用jQuery版本4.2,我没有问题.
jQuery.ajax(
{
cache: false,
url: "../Services/CmsWebService.svc/GetAvailableVideosForCompany",
type: "GET",
complete: function (jqXHR, textStatus) {
var responseText = jqXHR.responseText;
jQuery('#debugConsole').text(responseText);
availableVideosPopulationState.isRunning = false;
setTimeout(populateAvailableVideosListBox, 100);
},
data: { "companyIdString": queryParameters.companyIdField,
"textFilter": queryParameters.filterText
},
dataType: 'json',
error: function (jqXHR, textStatus, errorThrown) {
var errorString = 'Error thrown from ajax call: ' + textStatus + 'Error: ' + errorThrown;
alert(errorString);
},
success: function (data, textStatus, jqXHR) {
populateVideoListFromAjaxResults(data);
}
}
);
Run Code Online (Sandbox Code Playgroud)
如果返回两个元素,则以下是调试控制台的内容:
{"d":[{"__type":"ListEntry:#WebsitePresentationLayer","Text":"SOJACKACT0310DSN1.mpg - [SOJACKACT0310DSN1]","Value":"5565_5565"},{"__type":"ListEntry:#WebsitePresentationLayer","Text":"SOJACKACT0310DSN1Q.mpg - [SOJACKACT0310DSN1Q]","Value":"5566_5566"}]}
Run Code Online (Sandbox Code Playgroud)
但是如果返回一个元素:
{"d":[{"__type":"
Run Code Online (Sandbox Code Playgroud)
所以,当然,我们得到一个"未终止的字符串常量"错误. …
在APP Engine API中,提到如果请求带有"Accept-Encoding"set,那么它将自动压缩响应.
但是当我查看请求时,标题不存在.但在浏览器中,它已设置.当我尝试显式设置标头(使用JQuery ajax函数)时,有一条消息:
Refused to set unsafe header "Accept-Encoding"
Run Code Online (Sandbox Code Playgroud)
但是在本地主机中工作时没有发生这种情况 - 请求具有"Accept-Encoding"标头.这只有在发布后才会发生.但不允许始终明确地设置"Accept-Encoding".
我到处搜索,但找不到问题的解释.如果有人可以解释,这将是非常有帮助的...