相关疑难解决方法(0)

JQuery Ajax请求:更改用户代理

我正在使用JQuery向我自己的Web服务发出一个AJAX-Request.我需要User-Agent为HTTP-AJAX-Request 设置或修改HTTP-Header,我怎样才能以最简单的方式做到这一点?

我尝试了一些用户提供的提示使用setRequestHeaderMethod来设置User-Agent,但这不起作用.它确实适用于其他新创建的标题(如X-Test-Header),但它不起作用User-Agent.

谢谢!

ajax jquery user-agent

14
推荐指数
3
解决办法
4万
查看次数

使用gzip编码时,WCF服务返回不正确的Content-Length

我有一个包含过滤文本框和列表框的网页.对文本框的修改会触发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)

所以,当然,我们得到一个"未终止的字符串常量"错误. …

ajax wcf json gzip webhttpbinding

7
推荐指数
1
解决办法
8808
查看次数

App Engine接受编码

在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".

我到处搜索,但找不到问题的解释.如果有人可以解释,这将是非常有帮助的...

google-app-engine httprequest

6
推荐指数
1
解决办法
5345
查看次数