标签: xmlhttprequest

XMLHttpRequest Post上send()数据参数的最大长度

对于主要的浏览器实现,您可以在XMLHttpRequest的send方法中使用的字符串数据的长度是否有文档记录?

当数据超过3k时,我遇到了一个JavaScript XMLHttpRequest Post在FireFox 3中失败的问题.我假设Post的行为与传统的Form Post相同.

W3C文档提到send方法的数据参数是DOMString,但我不确定主要的浏览器是如何实现的.

这是我的JavaScript的简化版本,如果bigText超过3k就失败了,否则它可以工作......

var xhReq = createXMLHttpRequest();

function createXMLHttpRequest() {
  try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
  try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
  try { return new XMLHttpRequest(); } catch(e) {}
  alert("XMLHttpRequest not supported");
  return null;
}

function mySubmit(id, bigText) {
  var url    = "SubmitPost.cfm";
  var params = "id=" + id + "&bigtext=" + encodeURI(bigText);

  xhReq.open("POST", url, true);

  //Send the header information along with the request
  xhReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhReq.setRequestHeader("Content-length", params.length); …
Run Code Online (Sandbox Code Playgroud)

javascript ajax xmlhttprequest

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

如何检查XMLHttpRequest的send()是否支持File

Safari的XMLHttpRequest的send()方法支持File参数.Firefox(尚未).

如何检查是否支持此功能?在Firefox中,它的行为就像传递了一个空字符串一样.

我试图避免进行浏览器版本检测.

编辑:FF 3.6似乎支持它,但问题仍然适用于旧版本或其他浏览器.

javascript xmlhttprequest

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

使用If-Modified的XmlHttpRequest,webserver返回"400 Bad Request"

每当我使用以下代码时,网络服务器(运行IIS 7)拒绝向我发送内容,而是发送"400 Bad Request".

request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
Run Code Online (Sandbox Code Playgroud)

javascript iis-7 xmlhttprequest

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

xmlhttprequest响应文本来自Accept标头:text/xml,但是application/JSON的服务器错误

我必须从resourceindex页面获取响应文本作为JSON对象.当我在请求中没有放置Accept标头时,它会向我显示xml响应(我在警报中看到它).

但我希望响应作为JSON对象..我该怎么办.一个解决方案就是

httpRequest.setRequestHeader('Accept', 'application/JSON');
Run Code Online (Sandbox Code Playgroud)

但这给了我一个服务器错误:500

它也说

找不到Java类型,类....和MIME媒体类型application/octet-stream的消息正文编写器

有人可以建议如何克服这个问题并以JSON的形式获得响应?

javascript json content-type xmlhttprequest httprequest

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

Ajax调用子域

我有一台服务器位于example.com运行apache,提供我的静态html文件.

我也有一个json服务位于api.example.com运行python与cherrypy.

用户请求example.com并获取索引html页面.在那个页面上,我使用jquery向json服务发出ajax请求.document.domain返回example.com

        $.ajax({
        type: 'GET',
        url: 'http://api.example.com/resource/',
        dataType: 'json',
        success: successCallback,
        error: errorHandler
    });
Run Code Online (Sandbox Code Playgroud)

但是,我无法在firebug中看到ajax请求的响应主体.这让我相信浏览器(FF)不支持这一点.

实现这一目标的最佳方法是什么?如果可能的话,我宁愿不在example.com的apache后端使用任何代理.

javascript xmlhttprequest cherrypy

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

使用chrome扩展程序登录网站并从中获取数据

我正在开发一个Chrome/Chromium扩展程序,它将从学校系统中读取成绩等级的学校成绩.问题是该网站不记得登录用户.因此,我不能使用AJAX.

只有当我在其他标签上登录该页面时.但我想在后台自动登录该页面.解决方案可能是iframe标签,但Chrome/Chromium不允许我使用iframe内容进行阅读和操作.是否有任何解决方案如何作为登录用户在页面中操作?谢谢

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

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

使用Cookie从Chrome扩展程序发送XHR请求

我正在尝试将Google Chrome扩展程序的XHR请求发送到另一个域.这样可以正常工作,但我需要发送带有请求的域cookie.有什么办法吗?

google-chrome xmlhttprequest google-chrome-extension

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

如何与d3.js同步加载JSON数据?

当我的网站首次初始化时,它会查询服务器以获取一些数据.在此数据恢复之前,我无法在页面上放置任何内容.使用d3.js,我可以使用d3.json()来获取我的数据,但由于它是异步的,我需要将整个页面逻辑放在回调函数中.如何请求数据并等待它返回?

json xmlhttprequest synchronous d3.js

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

HTTP请求标头X-Requested-With来自哪里

我们知道X-Requested-With,如果http请求来自Ajax,我们可以使用http请求标头来判断.

许多javascript框架会X-Requested-With在其ajax请求中自动添加标头,例如jQuery Ajax,Prototype Ajax.而作为HTTP标头字段列表的维基说,这X-Requested-With是一个非标准的请求标头.

谷歌多次后,我还没有找到谁首先提出X-Requested-With请求标题.

所以我想知道是否还有其他人知道它的X-Requested-With来源?谢谢...

xmlhttprequest http-headers

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

使用经过身份验证的REST中的fetch()下载和保存数据

我有一个React应用程序,使用Python和Flask构建的REST后端.我正在从数据库下载数据并通过浏览器将其保存为CSV文件. 我有这个工作. 然而,我不明白的原因是为什么我必须超越我一直在阅读的资源并将其混合以使其发挥作用.为什么我没有发现这个概述更好?

有人说我要做的就是用mimetype设置响应头,并且Content-Disposition: attachment; filename=something.csv:

然而,仅此一点,仅使用普通链接,而不是fetch()和身份验证,所以我不得不寻找将客户端数据保存到磁盘的方法,例如:

所以,我的问题是:

  • 为什么我必须这样做?, 要么
  • 我错过了什么 - 更简单的方法是什么?

似乎第一个问题的答案是我不能修改请求头(添加身份验证令牌),除非通过XHR类型的工作.这似乎在这里得到了回答(没有回答,真的):

并且,由于某种原因,对XHR的反应Content-Disposition: attachment毫无意义.真的吗?在现代浏览器中管理这样的请求是否有更内在的方法?

我觉得我不明白这一点,这让我感到烦恼.

无论如何,这是我希望简化的工作代码,如果可能的话:

JS(React):

// https://stackoverflow.com/a/18197511/680464
download(filename, text) {
    var pom = document.createElement('a');
    pom.setAttribute('href', 'data:text/csv;charset=utf-8,' + encodeURIComponent(text));
    pom.setAttribute('download', filename);

    if (document.createEvent) {
        var event = document.createEvent('MouseEvents');
        event.initEvent('click', true, true);
        pom.dispatchEvent(event);
    }
    else {
        pom.click();
    }
}
downloadReport(studyID) {
    fetch(`/api/admin/studies/${studyID}/csv`
    ,   {
            headers: {
                "Authorization": "Bearer " + this.props.authAPI.getToken()
            ,   "Accept": "text/csv" …
Run Code Online (Sandbox Code Playgroud)

javascript ajax xmlhttprequest flask reactjs

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