【发布时间】:2017-09-29 10:47:06
【问题描述】:
【问题讨论】:
标签: javascript jquery xml asp.net-mvc
【问题讨论】:
标签: javascript jquery xml asp.net-mvc
查看link了解更多信息
根据我的研究,错误消息仅由 FireFox 生成 当渲染页面在 Internet 中为空白时。出于某种原因,.NET 当它创建一个响应类型“application/xml” 空白页。 Firefox 将文件解析为 XML 并找不到根 元素,吐出错误信息。
换句话说,这是一个已知的 Firefox 问题
【讨论】:
For some reason, .NET generates a response type of "application/xml" when it creates an empty page这不是真的,空响应中没有Content-Type
我在几种不同的情况下看到了XML Parsing error: no root element 错误。它通常只出现在 Firefox 开发者控制台中。
返回带有空正文的 200 OK 响应代码。您的服务器应改为返回 204 No Content 响应代码。
返回204 No Content 响应代码,然后将内容附加到响应中。您的服务器应改为返回 200 OK 响应代码。
返回不正确的Content-Type。将其设置为与响应正文中使用的类型相同的类型(JSON、XML、纯文本等),否则可能会被错误地解析。
如果这些都不能解决您的问题,我会检查您的所有响应标头是否正确。 Content-Length 等其他字段也可能会产生干扰。
【讨论】:
这是此错误消息的最高 Google 结果,我还没有看到涵盖另一个棘手案例的答案,所以这里是:
如果您的 SVG 服务正确,但缺少结束 </svg> 标记,也会发生这种情况!例如,如果响应仅提供部分服务,因为它是流式响应,并且在中途出错……
【讨论】:
public IActionResult MethodName()
{
// YOUR CODE
return StatusCode(204);
}
代码 204 - 服务器成功处理了请求,并且没有返回任何内容
有关状态码的更多详细信息,请查看此页面: List of HTTP status codes
【讨论】:
【讨论】:
我通过将服务器上的 Content-Type 标头设置为 text/plain 在我的应用程序中解决了这个问题。在 Node 中是这样的:
res.setHeader('Content-Type', 'text/plain');
使用适合您数据的任何 MIME 类型,例如 application/json 等。
【讨论】:
如果您的控制器操作上有 [ValidateAntiForgeryToken] 属性并尝试在没有实际令牌的情况下提交表单,这也可能发生。您可以使用
显式呈现令牌@Html.AntiForgeryToken()
这是首选解决方案或删除验证属性。
【讨论】:
我们在发布 axios 调用时收到此错误。而我们的测试服务器不在
allowed-origin:
主机列表。将我们的服务器添加到 application.yml 中的 allowed-origin 解决了这个问题。
【讨论】:
我解决了我的问题
return NoContent();
当你什么都不想要返回时,这似乎更清楚了。
【讨论】: