繁体   English   中英

如何通过AJAX发送YAML?

[英]How can I send YAML over AJAX?

请关注这个问题的技术方面,而不是原因 原因很明显:YAML是人类可用的最易读的数据序列化格式。 因此,最好的。

如何通过XMLHttpRequest从客户端向服务器发送YAML,而无需先将其转换为JSON,XML或其他格式?

我使用JavaScript作为客户端代码,如果需要我可以使用jQuery。 我选择的服务器端语言是PHP。

根据Wikipedia ,XMLHttpRequest的send()方法:

接受包含要随请求一起发送的内容的单个参数。 W3C草案规定, 该参数可以是脚本语言可用的任何类型,只要它可以转换为文本字符串 ,DOM文档对象除外。 [强调我自己]

YAML是一个文本字符串。 可以在服务器端发送并随后正确解析, 而不使用其他数据序列化格式,如json,xml等?

只需设置 适当的内容类型并发送即可

// xhr is an instance of XMLHttpRequest which has been open()ed and had event handlers set on it already
xhr.setRequestHeader("Content-Type", "text/x-yaml");
xhr.send(string_of_yaml_formatted_data);

请注意,大多数服务器端语言都不会自动解析它,因此您需要从POST请求正文中读取原始数据并自行解析。

例如在PHP中:

$raw_yaml = file_get_contents('php://input');
$data = yaml_parse($raw_yaml);

注意: yaml_parse()要求PECL yaml > = 0.4.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM