
这是我笔记
什么是 AJAX ?
AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。
一 AJAX - 创建 XML>
所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XML>
创建 XML>
XML>
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
XML>
为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XML>
对象。如果不支持,则创建 ActiveXObject :
var xml>
if (windowXML>
{// code for IE7+, Firefox, Chrome, Opera, Safari
xml>
}
else
{// code for IE6, IE5
xml>
}
二 AJAX - 向服务器发送请求
读取test1txt文本
xml>
xml>
方法 描述
open(method,url,async) 规定请求的类型、URL 以及是否异步处理请求。
• method:请求的类型;GET 或 POST
• url:文件在服务器上的位置
• async:true(异步)或 false(同步)
send(string) 将请求发送到服务器。
• string:仅用于 POST 请求
GET 请求
一个简单的 GET 请求:
xml>
xml>
在上面的例子中,您可能得到的是缓存的结果比如读取文件test1txt一次后,再次点击按钮不读取
为了避免这种情况,请向 URL 添加一个唯一的 ID:或者在后面添加用个变动的字符
xml>
xml>
POST 请求
一个简单 POST 请求:
xml>
xml>
如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 >
xml>
xml>
xml>
方法 描述
setRequestHeader(header,value) 向请求添加 >
• header: 规定头的名称
• value: 规定头的值
url - 服务器上的文件
异步 - True 或 False?
AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
XML>
xml>
对于 web 开发人员来说,发送异步请求是一个巨大的进步。很多在服务器执行的任务都相当费时。AJAX 出现之前,这可能会引起应用程序挂起或停止。
通过 AJAX,JavaScript 无需等待服务器的响应,而是:
在等待服务器响应时执行其他脚本
当响应就绪后对响应进行处理
Async = true
当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数:
xml>
{
if (xml>
{
documentgetElementById("myDiv")innerHTML=xml>
}
}
xml>
xml>
三 AJAX - 服务器响应
接收传送过来的数据,用对应语言的from 或get方法
输出文本在客户端用
如需获得来自服务器的响应,请使用 XML>
responseText 属性
documentgetElementById("myDiv")innerHTML=xml>
responseXML 属性
xmlDoc=xml>
txt="";
x=xmlDocgetElementsByTagName("ARTIST");
for (i=0;i<xlength;i++)
{
txt=txt + x[i]childNodes[0]nodeValue + "<br />";
}
documentgetElementById("myDiv")innerHTML=txt;
四 AJAX - onreadystatechange 事件
通过事件来触发判断是否接收成功和接收数据改变前台内容当请求被发送到服务器时,我们需要执行一些基于响应的任务。
每当 readyState 改变时,就会触发 onreadystatechange 事件。readyState 属性存有 XML>
下面是 XML>
属性 描述
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState 存有 XML>
• 0: 请求未初始化
• 1: 服务器连接已建立
• 2: 请求已接收
• 3: 请求处理中
• 4: 请求已完成,且响应已就绪
status 200: "OK"
404: 未找到页面
使用 Callback 函数
callback 函数是一种以参数形式传递给另一个函数的函数。
如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XML>
该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同):
<script type="text/javascript">
var xml>
function loadXMLDoc(url,cfunc)
{
if (windowXML>
{// code for IE7+, Firefox, Chrome, Opera, Safari
xml>
}
else
{// code for IE6, IE5
xml>
}
xml>
xml>
xml>
}
function myFunction()
{
loadXMLDoc("/ajax/test1txt",function()
{
if (xml>
{
documentgetElementById("myDiv")innerHTML=xml>
}
});
}
</script>
服务器端通对应的方法POST GET 等 接收 输出 是直接输出
ajaxFileUpload自定义参数,后台获取的时候为null
解决办法:修改ajaxFileUploadjs文件中createUploadForm()函数,新增传入参数data,并创建hidden控件,存储自定义参数
createUploadForm: function (id, fileElementId, data) {
if (data) {
}
找到ajaxFileUploadjs文件中调用createUploadForm()函数的地方,传入产生即可
ajaxFileUpload: function (s) {
var form = jQuerycreateUploadForm(id, sfileElementId,sdata);
}
function(msg){ alert(msgxml); } alert在IE下可以,在FF下不行,返回写法有问题,msg获取到是xml文档的所有节点信息,你给加个后缀是什么意思?
ajax跨域失败,是因为js遵循同源规则,即不同域名下的js访问是不被允许的(安全考虑),那么如何解决,主要有三个方法,第一个是修改服务器(如果是别人的服务器,就没办法了,所以这个不多说,网上会有具体的 *** 作),说一下客户端就能解决的2个办法,第一个,ajax返回数据,也就是dataType类型设置为jsonp,jsonp是专门为解决跨域问题而生的,具体用法自行百度,第二个方法,我最近也在用的,亲测有效,就是先用自己服务器后台执行curl,抓取目标服务器上的文件,在用前端ajax获取服务器后台获取到的目标服务器文件结果即可
首先将传递的参数值everyid打出来,看有没有值;然后在接收端打出$_REQUEST,或者$_POST信息;对比就能看出那块出问题了!既然请求状态码是200,那就证明没错,只是你的参数穿的有问题罢了!
以上就是关于ajax读取文本文件的格式,该怎么处理全部的内容,包括:ajax读取文本文件的格式,该怎么处理、ajaxFileUpload上传文件时,自定义参数data后台获取为null的问题、ajax读取XML文件节点数据,IE不能读取,chrome正常等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)