请关注此问题的技术方面,而不是为什么。原因很明显:YAML是人类可用的最易读的数据序列化格式。因此,最好的。
如何通过XMLHttpRequest从客户端向服务器发送YAML,而无需先将其转换为JSON,XML或其他格式?
我使用JavaScript作为客户端代码,如果需要我可以使用jQuery。我选择的服务器端语言是PHP。
根据Wikipedia,XMLHttpRequest的send()
方法:
接受包含要随请求一起发送的内容的单个参数。 W3C草案声明此参数可以是脚本语言可用的任何类型,只要它可以转换为文本字符串,但DOM文档对象除外。 [强调我自己]
YAML是一个文本字符串。可以在服务器端上使用其他数据序列化格式(如json,xml等)在服务器端上正确发送和解析吗?
答案 0 :(得分:4)
仅set appropriate内容类型和send。
// 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请求正文中读取原始数据并自行解析。
e.g。用PHP:
$raw_yaml = file_get_contents('php://input');
$data = yaml_parse($raw_yaml);
注意:yaml_parse()
需要PECL yaml> = 0.4.0