我理解在Javascript中可以使用JSON代替XMLHttpRequest,但是我可以发出请求并获取完全随意的数据吗?
喜欢自定义文字还是二进制格式?
或者界面是否仅限于jSON和XML?
我希望我能完成我在这里的想法...
a)如何在没有XML或JSON的情况下创建普通请求?
b)如何以纯字符串而不是对象的形式访问结果(答案)?
答案 0 :(得分:4)
是的,只需设置内容类型:
var request = new XMLHttpRequest();
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); // whatever character set you need.
request.open("GET", "yourtext.txt", true);
request.onreadystatechange = function() {
if(this.readyState == 2) {
alert(request.responseText);
}
}
request.send();
答案 1 :(得分:2)
您可以使用任何基于文本的格式:XML,JSON,CSV或text/plain
。
如果您尝试使用二进制格式,我不确定会发生什么。
答案 2 :(得分:2)
您可以将结果恢复为
如果它是JSON,某些浏览器也可以将其作为对象返回。
以字符串形式取回任何内容的功能允许您自己解析任何格式。
答案 3 :(得分:1)
您可以在send()之前将内容类型明确设置为纯文本:
var request = new XMLHttpRequest();
request.open("POST", "/test.php");
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
request.send(message);
答案 4 :(得分:1)
除了提及setRequestHeader
方法的帖子之外:似乎xmlhttprequest
API的w3规范仅对header
(即第一个参数)施加(建议)限制但不适用于value
(即第二个参数)。
以下是规范的链接:http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method。
AFAIC,这意味着就所请求的转移而言,任何数据类型都是有效的。但这并不会扩展到返回的数据,因为只指定了text和xml。
我可能错了。