Rails 抛出“REXML::ParseException 没有有效的根”例外
我有一个 JavaScript 对象,并使用 Douglas Crockford 的 JSON 实用程序< /a>.在发送 AJAX 后请求时,我得到:
REXML::ParseException 没有有效的根
REXML::ParseException (The document "{\"name\":\"asda\",\"deadline\":\"May 24, 2011\"}" does not have a valid root):
我无法继续处理此错误。
I have a JavaScript object, and converted it into JSON using Douglas Crockford's JSON utility. While sending a post AJAX request, I get:
REXML::ParseException does not have a valid root
REXML::ParseException (The document "{\"name\":\"asda\",\"deadline\":\"May 24, 2011\"}" does not have a valid root):
I am not able to proceed with this error.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当发出 AJAX 请求时,您可能发送了错误的 Content-Type 标头。如果您发出带有
Content-Type: application/xml
标头的请求,Rails 会尝试将您的请求正文解析为 XML,并且您将收到该错误消息。相反,您需要使用 application/json 或其他内容类型,以便 Rails 不会尝试解析它。如果您使用的是 jQuery,则这是 $.ajax< 中的contentType
设置/a>.When making your AJAX request, you're probably sending the wrong Content-Type header. If you make a request with the header
Content-Type: application/xml
, Rails will try to parse your request body as XML, and you'll get that error message. Instead, you'll want to useapplication/json
or another content-type so that Rails won't try to parse it. If you're using jQuery, this is thecontentType
setting in $.ajax.JSON 不像 XML 那样要求有根元素。尝试使用 JSON.parse(json_string) 解析它,而不是使用 REXML。
JSON doesn't require there to be a root element the way XML does. Try parsing it with JSON.parse(json_string), instead of with REXML.
请参阅下面提到的 json 文件,
这里的词汇表是根元素,它包含整个 json,类似于下面显示的 xml。
因此我们可以说词汇表是根,并且只是 xml 或 json 中的一个标签。
因此,您必须在 json 文件中提供一个包含整个 JSON 文件的根元素。
See the below mentioned json file
Here glossary is the root element which encloses the whole json similarly to xml as displayed below.
Hence we can say that the glossary is the root and is only one tag in xml or json.
Hence you have to provide a root element in the json file which encloses the whole JSON file.