ajax获取文件流,ajax接收文件流

http://www.itjxue.com  2023-01-16 20:14  来源:未知  点击次数: 

如何利用 AJAX从XML中读取文件

建议使用jQuery,跟操作html一样,伪代码如下: $.ajax({ url: '/xml/Student.xml', type: 'GET', dataType: 'xml', success: function(xml) { var name = $(xml).find('name').text(); $('h1').text(name); }});

ajax如何获取csv的文件?

你目前ajax服务端是直接读取文件的逻辑吧?你可以变通一下,ajax只返回文件的url,然后ajax前段进行处理,比如:

前段加一个隐藏iframe:script type="text/javascript"

function download(id,filepath){var ifrm = document.getElementById(id);

ifrm.src = "readfile.php?filepath="+filepath;}/scriptiframe id="ifr" name="ifr" style="display:none"/iframe服务端加个下读取文件的代码,比如readfile.php?php

$filesize = filesize($_GET['filepath']);

header("Content-type: application/octet-stream");

header("Content-Length: $filesize");

header("Content-Disposition: attachment; filename=".$_GET['filepath']);

readfile($_GET['filepath']);exit;?当你前段ajax判断返回成功的时候,执行var tmpurl = return.url;

ajax读取文本文件的格式,该怎么处理

这是我笔记

什么是?AJAX??

AJAX?=?异步?JavaScript?和?XML。

AJAX?是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX?可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用?AJAX)如果需要更新内容,必需重载整个网页面。

有很多使用?AJAX?的应用程序案例:新浪微博、Google?地图、开心网等等。

一.?AJAX?-?创建?XMLHttpRequest?对象

所有现代浏览器(IE7+、Firefox、Chrome、Safari?以及?Opera)均内建?XMLHttpRequest?对象。

创建?XMLHttpRequest?对象的语法:

XMLHTTP?=?new?XMLHttpRequest();

老版本的?Internet?Explorer?(IE5?和?IE6)使用?ActiveX?对象:

XMLHTTP?=?new?ActiveXObject("Microsoft.XMLHTTP");

为了应对所有的现代浏览器,包括?IE5?和?IE6,请检查浏览器是否支持?XMLHttpRequest?对象。如果支持,则创建?XMLHttpRequest

对象。如果不支持,则创建?ActiveXObject?:

var?xmlhttp;

if?(window.XMLHttpRequest)

{//?code?for?IE7+,?Firefox,?Chrome,?Opera,?Safari

xmlhttp=new?XMLHttpRequest();

}

else

{//?code?for?IE6,?IE5

xmlhttp=new?ActiveXObject("Microsoft.XMLHTTP");

}

二.?AJAX?-?向服务器发送请求

读取test1.txt文本

xmlhttp.open("GET","test1.txt",true);

xmlhttp.send();

方法 描述

open(method,url,async) 规定请求的类型、URL?以及是否异步处理请求。

#8226; method:请求的类型;GET?或?POST

#8226; url:文件在服务器上的位置

#8226; async:true(异步)或?false(同步)

send(string) 将请求发送到服务器。

#8226; string:仅用于?POST?请求

GET?请求

一个简单的?GET?请求:

xmlhttp.open("GET","demo_get.asp",true);

xmlhttp.send();

在上面的例子中,您可能得到的是缓存的结果.比如读取文件test1.txt一次后,再次点击按钮不读取.

为了避免这种情况,请向?URL?添加一个唯一的?ID:或者在后面添加用个变动的字符.

xmlhttp.open("GET","demo_get.asp?t="?+?Math.random(),true);

xmlhttp.send();

POST?请求

一个简单?POST?请求:

xmlhttp.open("POST","demo_post.asp",true);

xmlhttp.send();

如果需要像?HTML?表单那样?POST?数据,请使用?setRequestHeader()?来添加?HTTP?头。然后在?send()?方法中规定您希望发送的数据:

xmlhttp.open("POST","ajax_test.asp",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send("fname=Billlname=Gates");

方法 描述

setRequestHeader(header,value) 向请求添加?HTTP?头。

#8226; header:?规定头的名称

#8226; value:?规定头的值

url?-?服务器上的文件

异步?-?True?或?False?

AJAX?指的是异步?JavaScript?和?XML(Asynchronous?JavaScript?and?XML)。

XMLHttpRequest?对象如果要用于?AJAX?的话,其?open()?方法的?async?参数必须设置为?true:

xmlhttp.open("GET","ajax_test.asp",true);

对于?web?开发人员来说,发送异步请求是一个巨大的进步。很多在服务器执行的任务都相当费时。AJAX?出现之前,这可能会引起应用程序挂起或停止。

通过?AJAX,JavaScript?无需等待服务器的响应,而是:

在等待服务器响应时执行其他脚本

当响应就绪后对响应进行处理

Async?=?true

当使用?async=true?时,请规定在响应处于?onreadystatechange?事件中的就绪状态时执行的函数:

xmlhttp.onreadystatechange=function()

{

if?(xmlhttp.readyState==4??xmlhttp.status==200)

{

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

}

}

xmlhttp.open("GET","test1.txt",true);

xmlhttp.send();

三.?AJAX?-?服务器响应

接收传送过来的数据,用对应语言的from?或get方法.

输出文本在客户端用

如需获得来自服务器的响应,请使用?XMLHttpRequest?对象的?responseText?或?responseXML?属性。

responseText?属性

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

responseXML?属性

xmlDoc=xmlhttp.responseXML;

txt="";

x=xmlDoc.getElementsByTagName("ARTIST");

for?(i=0;ix.length;i++)

{

txt=txt?+?x[i].childNodes[0].nodeValue?+?"br?/";

}

document.getElementById("myDiv").innerHTML=txt;

四.?AJAX?-?onreadystatechange?事件

通过事件来触发判断是否接收成功.和接收数据.改变前台内容.当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当?readyState?改变时,就会触发?onreadystatechange?事件。readyState?属性存有?XMLHttpRequest?的状态信息。下面是?XMLHttpRequest?对象的三个重要的属性:

下面是?XMLHttpRequest?对象的三个重要的属性:

属性 描述

onreadystatechange 存储函数(或函数名),每当?readyState?属性改变时,就会调用该函数。

readyState 存有?XMLHttpRequest?的状态。从?0?到?4?发生变化。

#8226; 0:?请求未初始化

#8226; 1:?服务器连接已建立

#8226; 2:?请求已接收

#8226; 3:?请求处理中

#8226; 4:?请求已完成,且响应已就绪

status 200:?"OK"

404:?未找到页面

使用?Callback?函数

callback?函数是一种以参数形式传递给另一个函数的函数。

如果您的网站上存在多个?AJAX?任务,那么您应该为创建?XMLHttpRequest?对象编写一个标准的函数,并为每个?AJAX?任务调用该函数。

该函数调用应该包含?URL?以及发生?onreadystatechange?事件时执行的任务(每次调用可能不尽相同):

script?type="text/javascript"

var?xmlhttp;

function?loadXMLDoc(url,cfunc)

{

if?(window.XMLHttpRequest)

{//?code?for?IE7+,?Firefox,?Chrome,?Opera,?Safari

xmlhttp=new?XMLHttpRequest();

}

else

{//?code?for?IE6,?IE5

xmlhttp=new?ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=cfunc;

xmlhttp.open("GET",url,true);

xmlhttp.send();

}

function?myFunction()

{

loadXMLDoc("/ajax/test1.txt",function()

{

if?(xmlhttp.readyState==4??xmlhttp.status==200)

{

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

}

});

}

/script

服务器端通对应的方法POST?GET?等?接收?.输出?是直接输出..

ajax post下载文件/流

Form里面有你很多的input

其实只要在你Form里面隐藏一个iframe

iframe name="downloadFrame" style="display: none;" frameborder="0"/iframe

然后 提交表单 把target指向这个Iframe就行了

$("#formId").attr("action","下载的URL");

$("#formId").attr("target","downloadFrame");//iframe的名字

$("#formId").submit();

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。

Ajax 是一种用于创建快速动态网页的技术。

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。[1]

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

该技术在 1998 年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由Outlook Web Access小组写成。该组件原属于微软 Exchange Server,并且迅速地成为了 Internet Explorer 4.0 的一部分。部分观察家认为,Outlook Web Access 是第一个应用了 Ajax 技术的成功的商业应用程序,并成为包括Oddpost 的网络邮件产品在内的许多产品的领头羊。但是,2005 年初,许多事件使得 Ajax 被大众所接受。Google 在它著名的交互应用程序中使用了异步通讯,如Google、Google 地图、Google 搜索建议、Gmail等。Ajax 这个词由《Ajax: A New Approach to Web Applications》[2]? 一文所创,该文的迅速传播加强了人们使用该项技术的意识。另外,对Mozilla/Gecko 的支持使得该技术走向成熟,变得更为易用。

Ajax 前景非常乐观,可以提高系统性能,优化用户界面。Ajax 现有直接框架 AjaxPro,可以引入 AjaxPro.2.dll 文件,可以直接在前台页面 JavaScript 调用后台页面的方法。但此框架与表单验证有冲突。另外微软也引入了 Ajax 组件,需要添加 AjaxControlToolkit.dll 文件,可以在控件列表中出现相关控件。

(责任编辑:IT教学网)

更多

推荐ASP.NET教程文章