标签: xmlhttprequest

当网页使用基于 XMLHttpRequest 的 AJAX 调用时,如何在 selenium 中编写 wait_for_ajax 调用?

我有一个选择框,它调用基于 XMLHttpRequest 的 AJAX 调用来填充另一个选择框。我希望 Selenium 等到选择框被填充。我必须等待 XMLHttpRequest 的 readState 变量的值为 4,这意味着数据已填充。

ajax selenium xmlhttprequest

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

是否可以使用 XHR 或 fetch 下载二进制文件(pdf、word、excel、ppt、mp3...)?

是否可以使用 XHR 或 fetch 下载二进制文件(pdf、word、excel、ppt、mp3...)?我已经看到了一些使用数据 URI 和 base64 转换的 pdf 和图像的片段和技巧。我们有更好的机制吗?

我需要下载具有以下限制的文件:

  1. 文件下载请求必须使用 oauth2 令牌进行身份验证。本质上,这意味着我需要将授权标头设置为某个值
  2. 服务器返回分块数据。需要加入块(或者我可以强制服务器发送非分块数据)

我的 NodeJS 代码

用于获取元数据

var options = {
        hostname : API_HOST ,
        method : 'GET',
        port : 443,
        path : API_PATH + fileId,
        headers : {
            'Authorization' : 'Bearer ' + GOOGLE_ACCESS_TOKEN
        }
    }

    var meta = '';
    var fileRequest = https.request(options, function(response) {
        response.setEncoding('utf8');
        response.on('data', function(chunk) {
            meta += chunk;
        });

        response.on('end', function(error) {
            callback(error, meta);
        })
    });
Run Code Online (Sandbox Code Playgroud)

用于获取实际文件

var file = fs.createWriteStream(GDRIVE_ROOT …
Run Code Online (Sandbox Code Playgroud)

html javascript browser xmlhttprequest download

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

带有发布数据的请求后,PHP 中的 $_POST 数组为空

我正在使用此方法将参数发送到我的服务器 php,但我得到了您发布的值:

function post(path, parameters) {
var http = new XMLHttpRequest();
console.log(parameters);
http.open("POST", path, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.send(parameters);
}
Run Code Online (Sandbox Code Playgroud)

php :

public function tracking_referidos(){
    $this->autoRender = false;
    $result = array();
    $result['post'] = $_POST;
    echo json_encode($result);
    exit;
}
Run Code Online (Sandbox Code Playgroud)

结果 : {"post":{"referrer":"","event":"eventrid","hash":"45hfkabdus"}}

javascript php post xmlhttprequest

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

Rocket.chat - 通过 Rest API 登录 - 401

我正在尝试通过 API 在本地主机上登录我的 Rocket.chat 应用程序。
当我使用数据向http://localhost:3000/api/login发送 POST 时: {"user":"myusername","password":"mypassword"}
我收到状态错误的响应 401,无论是使用 xhr 请求、axios 还是 jquery ajax。

但是当我使用 python virtualenv 或 curl 发送相同的数据时,响应为 200 并且状态成功。
我究竟做错了什么?为什么 POST 在使用 javascript 发送时失败,而在使用 python 或 curl 发送时通过?

var xhr = new XMLHttpRequest();
  xhr.open("POST", 'http://localhost:3000/api/login/', true);
  xhr.send(JSON.stringify({
  user: "myusername",
  password: "mypassword"
}));
// result: {status: "error", message: "Unauthorized"}
Run Code Online (Sandbox Code Playgroud)

我发送没有标头的登录请求,因为:

xhr.setRequestHeader('Content-Type', 'application/json');
Run Code Online (Sandbox Code Playgroud)

返回 500

以下是来自 Chrome 的请求详细信息:
在此处输入图片说明

xmlhttprequest rocket.chat

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

如何使用 typescript/javascript 正确解析 multipart/byteranges 响应?

我是 TypeScript/JavaScript 的新手,我正在尝试使用 TypeScript 和 XMLHttpRequest 2 对二进制文件的不同部分执行多部分范围请求 ( RFC 7233 )。

根据RFC 7233,多部分/字节范围响应具有以下内容:

 HTTP/1.1 206 Partial Content
 Date: Wed, 15 Nov 1995 06:25:24 GMT
 Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
 Content-Length: 1741
 Content-Type: multipart/byteranges; boundary=THIS_STRING_SEPARATES

 --THIS_STRING_SEPARATES
 Content-Type: application/pdf
 Content-Range: bytes 500-999/8000

 ...the first range...
 --THIS_STRING_SEPARATES
 Content-Type: application/pdf
 Content-Range: bytes 7000-7999/8000

 ...the second range
 --THIS_STRING_SEPARATES--
Run Code Online (Sandbox Code Playgroud)

我看到两个选项:

  1. 将响应的正文视为二进制数据数组(set XMLHttpRequest.responseType = "arraybuffer"),将边界字符串转换为二进制,在二进制数据数组中搜索由边界字符串转换为二进制的每个正文部分,提取每个有效负载的标头并将它们转换为字符串?或者,
  2. 与上面类似,但将正文视为字符串(set XMLHttpRequest.responseType = "text"),识别由边界字符串分隔的正文部分,并将有效负载转换为二进制数据数组?

在 javascript/typescript 中处理/解析此类响应的正确方法是什么,因为响应包含多个正文部分,每个部分都有自己的标头(字符串)和有效负载(二进制)?

有没有更简单的方法?

欢迎任何建议。谢谢!

javascript xmlhttprequest multipart typescript

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

xmlhttprequest 是否有最大/最小超时?

xmlhttprequest 是否有最大超时?目前无法在 chrome 中设置超过 1 分钟的超时值。让 xmlHttpRequest: XMLHttpRequest = new XMLHttpRequest(); xmlHttpRequest.timeout = 120000;

javascript ajax google-chrome xmlhttprequest

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

如何制作将 HTML 文件加载到 div 中的 XMLHttpRequest?

我正在尝试制作一个XMLHttpRequest从外部文件加载 HTML 并将文件内容插入到div.

当我运行该函数时,它会在所有不够充分的正文中插入 HTML。

我的代码:

--------------------------> HTML <--------------------- -----

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="shit.js" charset="utf-8"></script>
    <link rel="stylesheet" href="index.css">
    <title>Test</title>
</head>
<body>
    <button type="button" name="button" onclick="send()">Click me</button>
    <div class="view" id="view"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

--------------------------> CSS <--------------------- -----

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="shit.js" charset="utf-8"></script>
    <link rel="stylesheet" href="index.css">
    <title>Test</title>
</head>
<body>
    <button type="button" name="button" onclick="send()">Click me</button>
    <div class="view" id="view"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

--------------------------> JS <--------------------- -----

.view {
    margin-top: 5vh;
    height: 15vh;
    width: 80vw; …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax xmlhttprequest request

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

texImage2D : XMLHttpRequest 后的图像无效

我正在使用静态文件服务器加载本地.jpg图像。

let xhr = new XMLHttpRequest();
this.isLoaded = false;
this.image = new Image();
xhr.open("GET", "http://localhost:8080/testing/ressources/" + url, true);
xhr.responseType = 'blob';

this.textureBuffer = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, this.textureBuffer);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, new Uint8Array([255, 0, 0, 255]));
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
xhr.onload = (e) => {

  if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
    let blob = new Blob([xhr.response], {
      type: 'image/jpg'
    });
    let urlCreator = window.URL || window.webkitURL;
    this.image.src = urlCreator.createObjectURL(blob);

    gl.bindTexture(gl.TEXTURE_2D, …
Run Code Online (Sandbox Code Playgroud)

xmlhttprequest webgl

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

弃用同步 XMLHttpRequest

我看到这个错误:“[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated 因为它对最终用户的体验有不利影响。有关更多帮助,请查看https://xhr.spec.whatwg.org/。”,在此代码:

var request;
if(window.XMLHttpRequest){
    request = new XMLHttpRequest();
}else{
    request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET', 'http://www.mywebsite.com', false);
request.send();
Run Code Online (Sandbox Code Playgroud)

我应该用什么替换指令,因为它们已被弃用?

html javascript xmlhttprequest

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

使用 pastebin API 发出一个简单的 POST 请求

我想知道如何向 pastebin.com 发出帖子请求。他们有一个易于理解的API 文档,但是每当我运行一个简单的 POST 请求时,我总是得到Bad API request, invalid api_option.

我正在使用提出请求所需的最低限度,我不确定我可能做错了什么。

var request = new XMLHttpRequest; request.open("POST", "https://pastebin.com/api/api_post.php?api_dev_key=mykey&api_option=paste&api_paste_code=hi", false); request.send(); request.response;

javascript jquery xmlhttprequest pastebin

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