向服务器发出AJAX请求(可能是Java,PHP等)时,是否需要将数据作为JSON字符串传递?
我们不能直接传递对象吗?是否存在反序列化问题或者是否可以在后端处理?在后端处理JS对象(如果可以直接发送obj)的任何例子都会很棒吗?
答案 0 :(得分:1)
对象文字仅在JavaScript运行时环境中有意义。由于AJAX主体只是一个字符串,因此您可以将{a:3}
传递给服务器。但是服务器端应该怎么做呢?它当然可以存储在数据库中,并在需要时返回给您。但是,如果它想从中提取一些数据呢?您必须拥有JS运行时并使用eval
评估对象。哪个会很尴尬,但可能。但是,并非所有服务器都具有JS运行时环境。虽然有许多语言的库支持将JSON解析为特定于服务器上语言的表示。
答案 1 :(得分:0)
AJAX请求以与任何其他HTTP请求相同的方式将数据传递到服务器。最常见的情况是,AJAX请求使用POST并将数据作为POST数据传递给服务器,但经常使用查询字符串,还有其他方法可以使用HTTP和AJAX将数据传递到服务器。
本质上,所有HTTP数据都是八位字节(字节),HTTP对JavaScript对象的序列化没有特殊支持,因此您或您使用的库和/或框架必须处理序列化。