标签: xmlhttprequest

如何使用Javascript和XMLHttpRequest加载二进制图像数据?

我试图加载一个图像客户端和base64编码服务器返回的字节,以传递它来执行一些处理.IE具有XMLHttpRequest对象的RequestBody属性,但我似乎无法使用它,并且RequestText被截断.在Firefox中,RequestText存在,但似乎已损坏.

javascript image xmlhttprequest

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

XMLHttpRequest总是调用"load"事件监听器,即使响应有错误状态

我正在使用FormData来aj文件上传.上传有效,但问题是永远不会调用"错误"回调.即使我的HTTP响应是500内部服务器错误(为了测试这个我调整服务器以500响应),调用"加载"回调.

function upload_image() {
    var form = document.getElementById('upload_image_form');
    var formData = new FormData(form);

    var xhr = new XMLHttpRequest();
    xhr.addEventListener("load", function(e) {
        alert("Success callback");
    }, false);
    xhr.addEventListener("error", function(e) {
        alert("Error callback");
    }, false);
    xhr.open("POST", "/upload_image");
    xhr.send(formData);
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我在Chrome上测试了这个.

javascript ajax error-handling xmlhttprequest

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

使用html5将数据上传到服务器时,是否可以在blob数据中设置文件名?

我用来event.clipboardData从剪贴板获取图像,然后上传它服务器,代码:

var items = e.clipboardData.items;
for(var i=0;i<items.length;i++)
{
    if(items[i].type.indexOf("image")!=-1)
    {
        var blob=items[i].getAsFile();
        var data = new FormData();
        data.append("ImageFileField",blob);
        _post2("url...",data);
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:_post2()是一个XMLHttpRequest用于上传工作的功能.

上面的代码工作正常,剪贴板中的图像可以直接上传到我的服务器.

但我发现问题,图像上传到服务器的文件名固定为"blob",我可以在上传到服务器之前修改文件名吗?

这是上传数据的详细信息:

请求有效负载

------ WebKitFormBoundaryW0NQVOkdrfkYGWV3
Content-Disposition:form-data; NAME = "%% File.48257279001171c9.2c36671da7f1b6c9482575de002e1f14 $ Body.0.3D8." filename = "blob"

内容类型:image/png

------ WebKitFormBoundaryW0NQVOkdrfkYGWV3--

javascript html5 xmlhttprequest

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

混合内容 页面已通过 HTTPS 加载,但请求了不安全的资源 该请求已被阻止 内容必须通过 HTTPS 提供

混合内容:“”处的页面是通过 HTTPS 加载的,但请求了不安全的资源“”。该请求已被阻止;内容必须通过 HTTPS 提供。

javascript resources mixed xmlhttprequest

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

检测XHR错误确实是由于浏览器停止或点击进入新页面

当我的页面通过XHR加载内容时,如果用户单击停止按钮或单击转到另一个页面,则会调用XHR error()函数.除了在页面上看到大量(红色)错误消息的用户震惊之外,这通常不是什么大问题.

消息是有效的 - 检索内容确实有错误 - 但这是由于用户交互,而不是因为系统故障.

有没有办法区分(404 | 500 |超时错误)和用户点击浏览器的停止按钮导致的错误?

编辑:我正在使用Dojo(因此错误函数引用),但我相信这将是任何XHR实现中常见的情况.调用error()时,我将查看xhr对象的readyState

javascript browser xmlhttprequest

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

是否有可能XHR HEAD请求不遵循重定向(301 302)

是否可以发送xhr HTTP HEAD请求以仅获取第一个请求的标头响应,而不是像重定向那样自动跟随301,302?我只对获取网址的新位置感兴趣.例:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(data) {
    if (xhr.readyState == 4) {
        if (xhr.status == 301 || xhr.status == 302) {
            // Get new location url don't GET it
        }
    }
};
xhr.open('HEAD', url, true);
xhr.send();
Run Code Online (Sandbox Code Playgroud)

http://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send-method似乎指定的请求应遵循,是有没有办法制止?

javascript ajax google-chrome xmlhttprequest

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

如何利用异步XMLHttpRequest的回调函数?

我目前正在编写JavaScript并且对回调感到困惑.我发现它不是那种内置函数...
我现在正在阅读O'Relly JavaScript第5版,它显示的示例代码如下所示:

getText = function(url, callback) // How can I use this callback?
{
    var request = new XMLHttpRequest();
    request.onreadystatechange = function()
    {
        if (request.readyState == 4 && request.status == 200)
        {
            callback(request.responseText); // Another callback here
        }
    }
    request.open('GET', url);
    request.send();
}
Run Code Online (Sandbox Code Playgroud)

基本上,我想我不明白一般的想法callback......有人可以写一个示例代码来利用callback上述优势吗?

javascript asynchronous xmlhttprequest callback

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

如何找出XMLHttpRequest.send()是否有效

我正在使用XMLHttpRequestjavascript代码发送文件到django view.我需要检测,文件是否已发送或是否发生了一些错误.我使用jquery编写以下javascript.

理想情况下,我想向用户显示该文件未上传的错误消息.是否有某种方法可以执行此操作javascript

我尝试通过返回一个success/failure消息来做这个django view,把success/failed messageas json和发送回来的序列化json django view.为此,我做了xhr.open() non-asynchronous.我试图打印xmlhttpRequest对象的responseText.console.log(xhr.responseText) 节目

response= {"message": "success"}
Run Code Online (Sandbox Code Playgroud)

我想知道的是,这是否是正确的方法.在许多文章中,我发现了警告

建议不要使用async = false

那么,有没有办法找出文件是否已发送,同时保持xhr.open()异步?

$(document).ready(function(){
   $(document).on('change', '#fselect', function(e){
            e.preventDefault();
            sendFile();
        });
});

function sendFile(){
   var form = $('#fileform').get(0);
   var formData = new FormData(form);
   var file = $('#fselect').get(0).files[0];
   var xhr = new XMLHttpRequest();
   formData.append('myfile', file);
   xhr.open('POST', 'uploadfile/', false);
   xhr.send(formData);
   console.log('response=',xhr.responseText);
} …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest

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

是否使用HTTP/2引发了每主机连接限制?

浏览器对于并行XHR的数量(现在约为6)具有每主机限制.

此限制是否适用于多路复用HTTP/2连接?

browser xmlhttprequest restriction http2

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

Angular 2无法在XMLHttpRequest上执行打开:无效的URL

我正在尝试调用服务,它可以在DHC中运行,但是当我尝试调用我的angular 2项目时,它会崩溃,方法请求是POST,从具有电子邮件和密码的正文接收对象,以及响应是一个令牌,我将在整个项目中用于授权.

这是我的代码.

import { Injectable } from '@angular/core';
import { Http, Response, Headers, Request ,RequestOptions ,RequestMethod } from '@angular/http';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';

@Injectable()
export class LoginService {
      constructor(private http:Http) { 
      }

  getToken(){
    var baseUrl = "xxx.xxx.x.xxx:xxxx/project/v1/admin/login";
    var headers = new Headers();
    headers.append("Content-Type", 'application/json');
    var options = new RequestOptions({ headers: headers });
    var objeto = {'email': 'xxxxxx', 'pass':'xxxx' } 
    var body2 = JSON.stringify(objeto);
    var xhr = new XMLHttpRequest();
    return this.http
       .post(baseUrl, body2, options)
       .map((response: Response) => response.json()) …
Run Code Online (Sandbox Code Playgroud)

xmlhttprequest jwt typescript angular

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