问题标签 [xmlhttprequest-level2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
493794 浏览

javascript - 为什么我的 http://localhost CORS 来源不起作用?

即使我为服务器(nginx/node.js)设置了适当的标头,我也遇到了这个 CORS 问题。

我可以在 Chrome 网络窗格中看到 -> 响应标头:

这应该可以解决问题。

这是我现在用来测试的代码:

我明白了

XMLHttpRequest 无法加载http://stackoverflow.com/。Access-Control-Allow-Origin 不允许来源http://localhost 。

我怀疑这是客户端脚本中的问题,而不是服务器配置中的问题...

0 投票
2 回答
662 浏览

javascript - 如何等待所有 XHR2 发送调用完成

我已经完成了一些代码来将多个文件从浏览器上传到服务器,同时也显示了进度条。XHR2 发送调用是异步的。问题是我想在所有 XHR2 发送调用完成后调用一些函数。

这是我的代码的一个非常简化的片段:

每当“onreadystatechange:文件上传”。在控制台中打印,我知道其中一个文件已完成上传。但我无法编写任何会说“所有文件已上传”的代码。

谢谢你的帮助。 我也在使用 jquery,以防有人有使用 jquery 的解决方案。

0 投票
2 回答
1302 浏览

javascript - 如何在 Opera 中从 Javascript 访问 8 位二进制数据?

这个问题是关于 IE到 Opera 12 浏览器的StackOverflow 问题的扩展。

根本问题是geoxml3处理kmz(压缩的kml)文件的问题。

在 Opera 12 中失败的示例

二进制数据在 ZipFile.complete.js 的修改版本中使用 TypedArrays进行处理

传输二进制文件后,Opera 12 中的 Uint8Array 未正确填充,就好像数据被导入为 16 位元素一样。

请求配置如下:

返回的值是这样处理的:

在 Opera 12 中,前 8 个字节是这样填充的:

0x004B0050; 给出 4915280 的十进制值

但应该是:

0x4034B50; 十进制值 67324752。

这在 Firefox、Chrome 和 IE 中可以正常工作(有解决方法)。

有谁知道我如何说服 Opera 12 正确填充 Uint8Array?还是一种解决方法,以便它可以工作(某种方式将 16 位字节数组转换为 8 位字节数组,尽可能有效地丢弃不需要的高 8 位)?这是最近在 Opera 12 中实现 TypedArray/XmlHttpRequest 的已知错误吗?

0 投票
1 回答
3474 浏览

php - 在 xmlHTTPrequest send() 之后从 PHP $_POST 访问 ArrayBuffer

我正在关注 XMLHttpRequest 2 的教程:

https://developer.mozilla.org/en/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Datahttp://www.html5rocks.com/en/tutorials/file/xhr2/#toc-send-arraybuffer

它们是客户端的绝佳教程,这是我脚本的工作摘录:

// 用 imagedata 做一些很酷的事情

到目前为止一切顺利,我可以从客户端和服务器控制面板看到大量数据正在传输。

这是我的问题:如何在服务器上使用 PHP 访问 ArrayBuffer?我习惯了 $_POST 超全局需要从 HTML 表单传递的参数,因此它可以作为数组访问,但我找不到任何关于如何访问这个二进制数组并将其粘贴到我的 MySQL 数据库中的参考。

0 投票
1 回答
572 浏览

http - HTTP 范围请求的最佳长度是多少

我有一个 javascript 下载器,它通过多个 HTTP 范围请求获取大文件:

而结束是

范围请求是必须的,因为我需要在文件中获取特定的偏移量(考虑从多个 HTTP 服务器下载)如果下载器即将使用这种方法下载 ~100MB 文件,那么获得良好吞吐量的最佳长度是多少?

0 投票
1 回答
45038 浏览

php - 使用 XMLHttprequest 上传文件 - multipart/form-data 中缺少边界

我正在使用 XMLHttprequest 上传文件。这是上传文件的JS函数:

在服务器端,在upload.php中,我以这种方式读取文件:

一切正常,除了我收到 PHP 警告:

Missing boundary in multipart/form-data POST data in Unknown on line 0.

如果我删除此行: xhr.setRequestHeader("Content-Type", "multipart/form-data");警告消失。

这里应该是什么问题?

0 投票
1 回答
911 浏览

ajax - Firefox 仅在 *download* 完成后触发 XMLHttpRequest 上传加载和加载结束事件

其他人可以确认这一点,还是我做错了什么?

在 Firefox 中,XMLHttpRequest 上传事件 load 和 loadend 仅在下载完成后触发,而不是在上传完成时触发。此外,在上传结束时不会触发进度事件。

请参阅此示例: http: //geo.kitten-x.com/testupload.html

我相信 Chrome 的行为是正确的,因为进度条一直到 100%,然后触发 load 和 loadend 事件,然后一旦脚本结束,就会发布结果。在 Firefox 中 load 和 loadend 事件仅在脚本完成后触发。

0 投票
3 回答
14179 浏览

ios - iOS 6 (iPhone/iPad) 使用 NTLM/Windows 身份验证的图像上传“请求正文流已用尽”

我正在尝试让 iOS 6 使用 XMLHttpRequest POST 上传图像。这适用于桌面和 Android 网络浏览器,但在 iOS 6 上,我在发布到的页面上收到错误:“请求正文流已用尽”。(使用带有 Safari Web Inspector 的 iOS 模拟器)。

这是页面的基本代码:

在任何其他浏览器上执行此操作时,处理程序会正确返回并上传文件。但是,对于 iOS,ashx 页面出现错误“请求正文流已用尽”。

这是检查器的屏幕截图:

Request Body Stream Exhausted

有任何想法吗?

UPDATE: This issue only occurs when NTLM/Windows authentication is enabled for the application in IIS. With forms or anonymous authentication, the upload works fine.

Thanks,

John

0 投票
2 回答
829 浏览

websocket - 根据我的情况,我应该使用 WebSockets 或 XmlHttpRequest 还是两者兼而有之?

我即将用猴子语言(跨平台翻译)制作一个回合制游戏。游戏将使用 HTML 5 平台。该游戏将在线进行,玩家可以互相比赛(可以是 2vs2 比赛)。我最近审查了大量的解决方案,我停止了其中的 2 个。旧的 XmlHttpRequest 和新的 WebSocket 似乎处于 W3C 的推荐状态,这相当不错。还有另一种我感兴趣的技术是 PubNub,一种推送服务。该服务实际上将消息推送到所有连接的客户端并且速度非常快..但这会在以后产生成本并且受到您发送的消息数量的限制。我的意思是,1000 个连接和 100 万条消息每月花费 15 美元,然后再花费 100 万美元,然后继续。实际上有3个演员,客户端用猴子 (HTML5) 编写,服务器用 C# 编写,因为我非常了解用于广播消息的语言和 PubNub。客户端只会向服务器发送请求,服务器会将消息中继到 PubNub,然后再发送回客户端。考虑到这些事实,我有两个计划:

  1. 该游戏是用 HTML 5 编写的,但我可以将其移植到其他语言(以 Android 为例)。如果我使用 WebSockets,我就不能这样做,因为我必须获得额外的库来处理这个问题,而且我不想在它上面投入更多的时间。所以我现在将专注于 HTML 5,但移植它始终是一种选择。
  2. 它是一个回合制游戏,所以是的,XmlHttpRequest 似乎适合这项任务,但在什么时候呢?如果我有超过 1000 个连接发送请求,它能够支持它吗?每个回合都是一个独特的请求,但聊天消息也是一个请求和私人消息,也可以获取玩家数据(在您加入任何游戏之前)等。WebSockets 的一个优势是 Http Get 易于制作并且在许多平台上都易于支持所以如果我选择这个,我显然可以走 Android 路线。
  3. 我不想在其他技术上投入比这里所说的更多的时间。
  4. PubNub 最终要花钱,但它对于推送消息非常有效,因此不使用它可能会有风险,并且会迫使我自己做消息中继代码。

所以这是我的4个计划。

  1. 使用 WebSockets 并使用 Alchemy 作为 C# 的 WebSocketServer,我对其进行了测试并且工作得很好,并且后端仍然有 PubNub 演员来中继我的消息。
  2. 使用 XmlHttpRequests 并为请求网关使用简单的 WebAPI。
  3. 两个都去。让客户独立于选择哪种技术。使用 XmlHttpRequest 作为后备并让服务器同时支持这两种连接。PubNub 仍将是这里的中继参与者,它应该使整个东西进行交流。
  4. 使用 WebSockets 但没有 PubNub。

那么你推荐我走哪条路线,为什么?

谢谢!

0 投票
2 回答
800 浏览

java - XmlHttpRequest 级别 2:响应不返回任何内容

我有这个问题,我昨天已经问过这个问题但我没有任何答案...... :(

我在客户端有这段代码:

到目前为止,这似乎是公平的。在 servlet 中,我有以下代码:

问题在于

打印出我的期望,但似乎

不返回任何东西,实际上警报是空的。

有人可以解释我为什么吗?