标签: xmlhttprequest

google-chrome中的XMLHttpRequest不报告进度事件

大家好我有这个代码:

function test()
{
    req = new XMLHttpRequest();
    req.upload.addEventListener("progress", updateProgress, false);
    req.addEventListener("readystatechange", updateProgress, false);
    req.addEventListener("error", uploadFailed, false);
    req.addEventListener("abort", uploadCanceled, false);

    var data = generateRandomData(currentPayloadId);
    totalSize = data.length;

    req.open("POST", "www.mydomain.com/upload.aspx");
    start = (new Date()).getTime();
    req.send(data);
}

function updateProgress(evt)
{
    if (evt.lengthComputable) {
        total = totalSize = evt.total;
        loaded = evt.loaded;
    }
    else {
        total = loaded = totalSize;
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,我的服务器响应了对于upload.aspx的初始OPTIONS请求200和Access-Control-Allow-Origin:*然后第二个请求POST发生

一切似乎都已到位,它在FireFox上运行良好,但在G Chrome上,updateProgress处理程序不会被调用但只调用一次,然后lengthComputable为false.

我需要Access-Control-Allow-Origin:*因为这是一个跨域调用,脚本父级是不同服务器上的资源,然后是upload.aspx域

任何人都可以给我一些线索,提示,请帮忙吗?这是G Chrome的一个已知问题吗?

谢谢!OVA

javascript security google-chrome xmlhttprequest updateprogress

16
推荐指数
1
解决办法
2565
查看次数

AJAX Web应用程序中是否需要表单标记?

我读了一些像这样的 AJAX-Form教程.标记表单用于HTML代码.但是,我认为没有必要.既然我们是通过发送HTTP请求的XmlHttpRequest,发送的数据可以是任何东西,没有必要投入形式.

那么,有没有理由在HTML中为AJAX应用程序提供表单标记?

html forms ajax xmlhttprequest

15
推荐指数
2
解决办法
3357
查看次数

从Javascript,Ajax,IE访问二进制数据:可以从Javascript(而不是VB)读取responseBody吗?

首先,我知道这个问题:

特别是最好的答案,http://emilsblog.lerch.org/2009/07/javascript-hacks-using-xhr-to-load.html.

因此,使用Firefox(以及以后版本的Chrome实际上似乎也可以使用的操作系统)从Javascript访问二进制数据;不了解Opera.到现在为止还挺好.但我仍然希望找到一种方法来使用现代IE(理想情况下是IE 6,但至少是IE 7+)访问二进制数据,而不使用VB.有人提到XHR.messageBody不起作用(如果它包含零字节),但我想知道这是否可以用更新版本解决; 或者是否有可能允许简单二进制数据访问的备用设置.

我的具体用例是访问使用二进制数据传输格式(包括UTF-8编码中不合法的字节组合)编码的Web服务返回的数据.

javascript ajax internet-explorer xmlhttprequest binary-data

15
推荐指数
1
解决办法
7780
查看次数

如何在XMLHttpRequest中获取响应URL?

有一个页面(url),我通过XMLHttpRequest请求它,但是我没有得到请求的URL的响应,它正在将请求发送到另一个页面,

请求---> page.php
从> directedpage.php获取响应

问题是如何获得响应网址?(示例中为directedpage.php)

javascript ajax response xmlhttprequest

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

XMLHttpRequest对HttpRequest

有谁知道,什么XMLHttpRequest使网页能够做到,这是不能使用正常的HttpRequest

asp.net ajax xmlhttprequest httprequest

15
推荐指数
1
解决办法
7617
查看次数

在Excel VBA代码中处理XMLHttp响应中的JSON对象

我需要处理一个JSON对象,它是Excel VBA中XMLHTTPRequest的响应.我写了下面的代码,但它不起作用:

  Dim sc As Object
  Set sc = CreateObject("ScriptControl")
  sc.Language = "JScript"

  Dim strURL As String: strURL = "blah blah"

  Dim strRequest
  Dim XMLhttp: Set XMLhttp = CreateObject("msxml2.xmlhttp")
  Dim response As String

  XMLhttp.Open "POST", strURL, False
  XMLhttp.setrequestheader "Content-Type", "application/x-www-form-urlencoded"
  XMLhttp.send strRequest
  response = XMLhttp.responseText
  sc.Eval ("JSON.parse('" + response + "')")
Run Code Online (Sandbox Code Playgroud)

我收到错误运行时错误'429'ActiveX组件无法在行中 创建对象Set sc = CreateObject("ScriptControl")

解析JSON对象后,如何访问JSON对象的值?

PS My JSON对象示例: {"Success":true,"Message":"Blah blah"}

excel vba json xmlhttprequest excel-vba

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

将自定义http标头添加到所有jQuery AJAX请求

澄清一点:我没有任何问题在我的jQuery ajax调用中添加自定义标头,我希望自动将我的自定义标头添加到所有ajax调用中.

如果你看一下jquery $ .ajax自定义http头问题(不是我的问题),你会看到一个非常好的例子,说明如果手动为每个ajax调用实现代码的工作方式.

我想覆盖所有jQuery ajax调用的beforeSend.据jQuery的文档,我可以利用这样做jQuery.ajaxSetup() ,但有一个警告,说你可能不应该,可能会导致意外的行为,所有的东西.对于这种全局回调,他们建议使用.ajaxStart(). .ajaxStart()看起来很棒,除了它不公开XHR所以我可以添加标题.

我应该使用ajaxSetup添加beforeSend吗?有没有办法从ajaxStart访问XHR?其他选择?

authentication ajax jquery xmlhttprequest http-headers

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

自v38起,Chrome扩展程序无法再从HTTP网址加载,解决方法?

我们网站的用户运行我们的Chrome插件,其中包括Chrome扩展程序开发页面中所述的XMLHttpRequest执行跨源请求.这已经运行了好几年了.但是,自从我们的用户升级到最新版本的Chrome(v38)后,这些请求都失败了.我们的网站使用HTTPS运行,并且通过我们的内容脚本加载的一些网址在HTTP上.消息是:

[已屏蔽]" https://www.ourpage.com/ "上的页面是通过HTTPS加载的,但是运行了来自" http://www.externalpage.com "的不安全内容:此内容也应通过HTTPS加载.

发生错误的报告行位于我发出HTTP调用的内容脚本中:

xhr.send(null);
Run Code Online (Sandbox Code Playgroud)

我无法控制外部页面,我宁愿不从我们自己的页面中删除SSL.问题:这是一个错误还是有一个我不知道的解决方法?

(注意:清单中的权限始终设置为<all_urls>已经工作了很长时间.将其设置为http://*/https://*/没有帮助.)

google-chrome xmlhttprequest cross-domain google-chrome-extension

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

XHR进度事件在上传完成之前不会触发?

我正在使用以下$ .ajax命令从PhoneGap应用程序上传文件:

function updateProgress( evt ) {
    if ( evt.lengthComputable ) {
        var percentComplete = evt.loaded / evt.total * 100;
        console.log( percentComplete + "%" );
    }
}

$.ajax({
    url: url,
    type: "POST",
    data: data,
    cache: false,
    dataType: "json",
    processData: false, 
    contentType: false, 
    success: successCallback,
    error: errorCallback,
    xhr: function() {
        var xhr = new window.XMLHttpRequest();
        xhr.addEventListener( "progress", updateProgress, false);
        return xhr;
    }
});
Run Code Online (Sandbox Code Playgroud)

上传工作正常.但是,一旦上传完成,进度事件只会触发一次.它实际上并没有在上传期间触发 - 因此实际上不会显示上传进度.上传时只有暂停,然后显示100%.

我有什么想法我做错了吗?

javascript ajax jquery xmlhttprequest cordova

15
推荐指数
1
解决办法
4469
查看次数

XHR/setTimeout/Promise直到滚动停止在Chrome中才完成

在Chrome中,如果用户滚动所有XHR并且setTimeouts将被延迟,直到滚动停止并且我需要一个解决方法.此博客文章中描述了行为.虽然这个功能有助于移动滚动,但对于无限滚动来说却是灾难性的,这正是我想要做的.

发生这种情况的证据:

  • 所有其他浏览器都能正常工作,Chrome会显示一个空白屏幕,直到用户停止滚动.

  • 网络面板将显示所有请求,pending直到滚动结束,然后它们全部完成.

  • 把它放在一个片段中,运行它然后立即开始滚动.滚动完成后才会调用setTimeout.

var p = new Promise(function (resolve) {
    setTimeout(function () {
        console.log('resolving');
        resolve();
    }, 1000)
});

p.then(function () {
    console.log('DONE!!');
})
Run Code Online (Sandbox Code Playgroud)

javascript scroll google-chrome xmlhttprequest settimeout

15
推荐指数
2
解决办法
1270
查看次数