标签: xmlhttprequest

一个记录到我们后端的JavaScript前端日志记录系统?

我们为服务器端服务建立了一个日志记录系统.具体来说,我们的Django项目大量使用Python记录模块,所以来电通话logger.info(),logger.warn()logger.error()得到由我们的集中式日志记录系统接走.

我想在我们的前端有一个等价物,我有一些想法:

  1. 会有某种形式通过JavaScript暴露的自定义日志记录对象的,将发送消息通过XMLHttpRequest来后端.

  2. 我想对客户端等效的日志记录级别:debug,info,warningerror.

  3. 当我们在本地开发(调试模式)时,我希望通过这些日志消息记录到浏览器/ Firebug控制台console.log().

  4. 在生产中,debug应该完全删除消息.

  5. 我记得有一种方法可以捕获所有未捕获的JavaScript异常,因此应该在这个error级别记录这些异常.

  6. 我们已经在使用Google Analytics事件跟踪功能了,对于我们创建的任何系统而言,它都会很好地与之结合.

这是一个好主意吗?你会怎么做?有现有的解决方案吗?

(FWIW,我们在前端使用jQuery.)

更新:简化问题:https://stackoverflow.com/questions/1423267/are-there-any-logging-frameworks-for-javascript

javascript jquery logging xmlhttprequest

10
推荐指数
1
解决办法
1万
查看次数

设置请求标头:连接

默认情况下,Connection标题设置为Keep-Alive浏览器,以便为浏览器的其他请求保持连接打开.

当我Connection标题时close,可能有什么区别?这会影响任何性能问题吗?

(一个补充:我从xmlhttprequest设置标题)

http xmlhttprequest http-headers

10
推荐指数
2
解决办法
2万
查看次数

收到ETag后,IE9假装304

我遇到了AJAX和Internet Explorer 9的问题:它在收到对初始etagged GET的响应后停止轮询我们的服务器.

它假装发出响应请求,如"响应HTTP/1.1 304未修改,状态200正常"(是的,一个响应中的两个不同的状态代码)和相同的ETag(应该随时间变化)但它们实际上都没有出现在服务器中日志.

此问题仅出现在IE中,相同的代码在Chrome和FF中运行良好.

也许将{cache:false}传递给jQuery.ajax()可能有所帮助,但我想知道是否有办法在服务器端解决问题.

我们的ETag使用可能存在错误.

谢谢!

etag internet-explorer xmlhttprequest http-status-code-304

10
推荐指数
1
解决办法
4526
查看次数

在同一个域中发送没有cookie的ajax请求?

我看到google或twitter autosuggest发送的ajax请求非常轻量级,因为它们不会发送任何带有请求的cookie.我想知道他们是怎么做到的?我搜索了一些方法,但我找到了通过CORS发送的方式,但他们将请求发送到同一个域.

关于如何做到这一点的任何想法或方法.我正在使用铬.

提前致谢

cookies ajax jquery http xmlhttprequest

10
推荐指数
1
解决办法
370
查看次数

XmlHttpRequest.onload未调用

我正在玩这个XmlHttpRequest东西.在一些教程和书籍中,它是onload在请求完成时调用的函数.在我的小实验中,永远不会调用此函数.这是我的代码:

    window.onload = function() {
        var url = "http://www.google.com";
        var request = new XMLHttpRequest();


        request.onload = function() {
            var state = this.readyState;
            var responseCode = request.status;
            console.log("request.onload called. readyState: " + state + "; status: " + responseCode);

            if (state == this.DONE && responseCode == 200) {
                var responseData = this.responseText;
                alert("Success: " + responseData.length  + " chars received.");
            }
        };

        request.error = function(e) {
            console.log("request.error called. Error: " + e);
        };

        request.onreadystatechange = function(){
            console.log("request.onreadystatechange …
Run Code Online (Sandbox Code Playgroud)

javascript ajax firefox xmlhttprequest

10
推荐指数
1
解决办法
2万
查看次数

XMLHttpRequest进度事件比实际上传快得多

我正在尝试实现上传表单并返回上传状态以使用xhr返回用户.一切似乎都得到了正确的实现,但是在上传时,回调似乎发生得太快,返回的百分比远高于实际发生的百分比.

对于大约<20Mb的文件,我立即得到一个回调,显示超过99%,同时上传继续在后台流失一段时间.

请参阅以下screengrab,显示74Mb文件中的控制台.这是在上传初始化后的几秒钟内进行的,并且上传持续了大约60秒(注意只有3个回调注册(已加载的总计)(计算的百分比)并且ajax上传继续使用throbber).

有没有人经历过这个并设法获得上传状态的精确表示?

('load'事件在上传过程后正确触发)

这是我的代码:

$(this).ajaxSubmit({
    target: '#output',
    beforeSubmit:  showRequest,
    xhr: function()
    {
        myXhr = $.ajaxSettings.xhr();
        if (myXhr.upload)
        {
            console.log('have xhr');
            myXhr.upload.addEventListener('progress', function(ev){
                if (ev.lengthComputable) {
                    console.log(ev.loaded + " " + ev.total);
                    console.log((ev.loaded / ev.total) * 100 + "%");
                }
            }, false);

        }
        return myXhr;
    },
    dataType: 'json',
    success:  afterSuccess
});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

javascript ajax jquery xmlhttprequest

10
推荐指数
1
解决办法
2001
查看次数

AngularJS $ http从失败的CORS请求返回状态码0

好的,我已经为此寻找了.基本上我们使用$ http请求,即跨域请求.我们的服务器允许域,当请求返回200时,一切正常.但是,只要我们的服务器返回错误,500,401,无论如何,Angular认为这是一个CORS问题.

我用Fiddler调试了响应,以验证我的服务器是否返回了500个Angular阻塞.

这是请求:

       var params = {
            url: "fakehost/example",
            method: 'GET',
            headers: {
                "Authorization": "Basic encodedAuthExample"
            }
        };

       $http(params).then(
            function (response) { // success 

            },
            function (error) { // error 
                 // error.status is always 0, never includes data error msg
            });
Run Code Online (Sandbox Code Playgroud)

然后在控制台中,我会看到:

XMLHttpRequest无法加载fakehost/example.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'mylocalhost:5750'访问.

然而,在提琴手中,真正的反应是:

HTTP/1.1 500 Internal Server Error
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 26 Aug 2014 12:18:17 GMT
Content-Length: 5683

{"errorId":null,"errorMessage":"Index was outside the bounds of …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest cors angularjs

10
推荐指数
1
解决办法
1万
查看次数

没有CORS或JSONP的跨域请求

我知道之前已经问过这个问题,但没有一个答案对我有用!我正在做一个学校项目,我想得到学校服务器上动态调度文件返回的HTML(解析我的项目).

我想要HTML的页面是:https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched

我认为没有为学校服务器文件启用CORS,我不知道它是否支持JSONP ...

如何设置跨域请求以从此页面获取HTML?

我试过了:

$.ajax({
    type:'POST',
    url: 'https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched',
    headers: {
      'Access-Control-Allow-Origin': '*'
   },
   contentType: 'text/html',
   crossDomain:true
}).done(function( data ) {

});
Run Code Online (Sandbox Code Playgroud)

我收到错误:

XMLHttpRequest无法加载 https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.响应具有HTTP状态代码501.

当我添加:

dataType:'jsonp'
Run Code Online (Sandbox Code Playgroud)

我收到错误:

获取 https://telaris.wlu.ca/ssb_prod/bwckschd.p_disp_dyn_sched?callback=jQuery21108736664191819727_1416964243449&_=1416964243450 400(错误请求)jquery.min.js:4send jquery.min.js:4n.extend.ajax jquery.min.js :4(匿名函数)

任何帮助是极大的赞赏!

javascript ajax jquery xmlhttprequest cross-domain

10
推荐指数
1
解决办法
2万
查看次数

Chrome:POST/OPTIONS请求因net :: ERR_TIMED_OUT而失败

OPTION/POST请求与控制台错误不一致,错误为err_timed_out.我们得到的问题不一致,有时只能观察到.否则请求会从后端获得适当的响应.当它超时时,请求甚至不会到达服务器.

我对这些东西做了一些研究,发现由于最多6个连接到资源限制,它可能会等待释放连接.但是,我没有看到任何其他请求待处理,所有其他请求都已完成.

在时间轴中,我总能看到它停滞了20.00秒.大部分时间都是一样的.但是,它只表明它在时间轴上暂停了一段时间.

ERR_Connection_Timed_Out失败,请求状态显示失败.请帮忙.

网络时间

在此输入图像描述

控制台错误

在此输入图像描述

dns proxy google-chrome xmlhttprequest angularjs

10
推荐指数
1
解决办法
4063
查看次数

如何获得通过AJAX加载的JS文件识别的全局函数?

我对Javascript中的范围以及如何识别全局函数感到困惑.在我的页面上我有

<script src="base64.js"></script>
Run Code Online (Sandbox Code Playgroud)

定义.然后在另一个文件中,我有

var xhr = new XMLHttpRequest;
...
        var full = location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: '');
            alert(Base64.decode("abc"));
        xhr.open("get", full + "myotherfile.js", true);
        xhr.send()
Run Code Online (Sandbox Code Playgroud)

警报执行没有问题.但是在"mytoherfile.js"中对Base64类的引用会导致RerefernceError.所以在myotherfile.js的顶部,我试过了

import {Base64} from 'base64';
Run Code Online (Sandbox Code Playgroud)

但这会导致"Uncaught SyntaxError:Unexpected token {"错误.在AJAX加载的JS文件中包含get我的全局函数的正确方法是什么?

编辑:使用加载远程加载的JS文件

this.worker = new Worker(xhrResponseText);
Run Code Online (Sandbox Code Playgroud)

javascript ajax global function xmlhttprequest

10
推荐指数
1
解决办法
184
查看次数