我是AJAX的新手,但作为概述,我想知道您可以上传和下载哪些格式。它仅限于JSON或XML,还是甚至可以发送MP3或UTF-8 HTML等二进制类型。最后,你是否可以完全控制数据,字节为字节数组,或者只是发送/接收的字符串。
答案 0 :(得分:4)
如果我们在讨论ajax,我们谈论的是javascript?关于XMLHTTPRequest?
XMLHttpRequest只是一个http请求可以传输所有内容。但是javascript中没有字节数组。只有字符串,数字等。你从ajax调用得到的每一件事都是一段文字(responseText)。这可能会被解析为XML(它为您提供reponseXML)。特殊编码应该更多地是http传输问题。
二进制内容不依赖于ajax,而是依赖于javascript。字符串有一些奇怪的编码在javascript中传递字节数据(特别是对于图像),但它不是一般的解决方案。
HTML不是问题,这是最突出的用例。从这种类型的请求中,您将获得一个HTML字符串,并将其添加到每个解析HTML的innerHTML的DOM中的某个节点。
答案 1 :(得分:2)
由于数据是通过HTTP传输的,因此您必须确保使用某种编码。其中最受欢迎的是base64编码。您可以在以下网址找到更多信息:http://www.webtoolkit.info/javascript-base64.html
该方法是对您要发送的数据进行base64编码,然后对服务器(或客户端)上的数据进行base64解码,并按预期使用原始数据。
答案 2 :(得分:1)
您可以传输任何类型的数据字符串或字节
答案 3 :(得分:1)
你可以发送任何你喜欢的东西,问题可能是如何处理它;)
标准HTML可能是最常用的ajax内容类型 - 您也可以选择字符编码,但最好始终坚持使用一种类型的编码。
答案 4 :(得分:1)
AJAX只是意味着您通过JavaScript调用在HTTP上异步传输数据。因此,您的脚本使用XmlHttpRequest()对象生成“正常”HTTP请求。但是,顾名思义,它实际上只适用于基于文本的数据格式,因为您通常希望在客户端使用从服务器返回的数据执行某些操作(但并非总是如此,有时人们只是将XmlHttpRequests发送给更新服务器上的内容。)
另一方面,我从未见过无论如何发送二进制数据的应用程序。
大多数情况下,人们选择使用POST或GET将数据发送到服务器(这基本上是一种传输HTTP固有的名称 - 值对的方法)。为了发送更复杂的数据,例如层次结构,需要以某种方式对它们进行编码。 XML文档可以通过JavaScript本地生成,发送到服务器并解析为所需的任何数据类型。但由于XML可能有点痛苦,因此许多开发人员使用JSON编码数据,因为它易于生成且易于解析。
服务器发回的内容同样是随意的。通常,您在Javascript中指定一个处理传入数据的回调函数。同样,流行的选择是XML和JSON,它们分别容易地解析为文档对象或数组结构。您也可以发送纯文本或其他包装,但请记住,您必须自己从中提取可用数据。有时,将实际的HTML片段发送到客户端以直接更新页面上的内容也是有益的。
对于初学者,我建议你看一下JQuery。它是一个非常轻量级的框架,它抽象了许多邪恶的兼容性东西,让你非常好地编写AJAX请求。
答案 5 :(得分:0)
您可以移动任何可以通过HTTP发送的内容。对从与加载的页面相同的域进行调用存在限制,但对传输的内容没有限制。您也可以执行GET或POST事务。
答案 6 :(得分:0)
标题为Digg the Blog的DUI.Stream and MXHR条目展示了他们所谓的“Multipart XMLHttpRequests”。它现在是alpha代码,但有一个demo that handles images。