Rails抛出“REXML :: ParseException没有有效的根”exception
我有一个JavaScript对象,并使用Douglas Crockford的JSON实用程序将其转换为JSON。 在发送后AJAX请求时,我得到:
REXML :: ParseException没有有效的根
REXML::ParseException (The document "{\"name\":\"asda\",\"deadline\":\"May 24, 2011\"}" does not have a valid root):
我无法继续此错误。
在发出AJAX请求时,您可能发送了错误的Content-Type标头。 如果您使用标题Content-Type: application/xml
发出请求,Rails将尝试将您的请求正文解析为XML,并且您将收到该错误消息。 相反,您将需要使用application/json
或其他内容类型,以便Rails不会尝试解析它。 如果您使用的是jQuery,那么这是$ .ajax中的contentType
设置。
JSON不需要像XML那样存在根元素。 尝试使用JSON.parse(json_string)解析它,而不是使用REXML解析它。
请参阅下面提到的json文件
{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } }
这里词汇表是根据xml包含整个json的根元素,如下所示。
example glossary S Standard Generalized Markup Language SGML ISO 8879:1986 A meta-markup language, used to create markup languages such as DocBook.
因此我们可以说术语表是根,并且只是xml或json中的一个标记。
因此,您必须在json文件中提供一个根元素,该元素包含整个JSON文件。
- 全球位置(国家,地区,城市)选择Rails,jQuery或Google Maps API的插件?
- 预编译后Rails javascript资产丢失
- Heroku和Rails 4:一些javascript无法正常工作
- 工作jQwery代码不在条件内工作
- Backbone和Rails关联:避免JSON HashWithIndifferentAccess错误
- Ruby on Rails:如何从记录生成数组以在Highcharts中显示?
- 将Rails应用程序部署到Heroku时出现语法错误:ExecJS :: RuntimeError:SyntaxError:意外字符
- 使用Ajax更新Rails中的元素
- 只是让Highchart显示出来有困难