簡體   English   中英

XML 解析錯誤:在控制台 FF 中找不到根元素位置

[英]XML Parsing Error: no root element found Location in Console FF

我使用的是 ASP.NET MVC 端,我只在 FF 中出現此錯誤。 為什么我會收到此錯誤消息? 這是什么原因? 我不明白這個錯誤的根源在哪里。 有人有什么想法嗎?

在此處輸入圖像描述

下一個錯誤: 在此處輸入圖像描述

檢查此鏈接以獲取更多信息

根據我的研究,該錯誤消息僅在 Internet 中呈現頁面為空白時由 FireFox 生成。 出於某種原因,.NET 在創建空頁面時會生成“application/xml”響應類型。 Firefox 將文件解析為 XML 並沒有找到根元素,並吐出錯誤消息。

換句話說,這是一個已知的 Firefox 問題

希望這可能對某人有所幫助.... 我在 Action 方法中更改了返回值的類型並且它起作用了。 更多細節可以在這篇文章中找到。

改自

return Ok();

return Json("Ok");
public IActionResult MethodName()
{
    // YOUR CODE 
    return StatusCode(204);
}

代碼 204 - 服務器成功處理了請求,並且沒有返回任何內容

有關狀態代碼的更多詳細信息,請查看此頁面: HTTP 狀態代碼列表

我通過將服務器上的Content-Type標頭設置為text/plain在我的應用程序中修復了這個問題。 在 Node 中是這樣的:

res.setHeader('Content-Type', 'text/plain');

使用適合您數據的任何 MIME 類型,即application/json等。

我們在發布 axios 調用時收到此錯誤。 我們的測試服務器不在

allowed-origin: 

主機列表。 將我們的服務器添加到 application.yml 中的 allowed-origin 解決了該問題。

如果您的控制器操作具有 [ValidateAntiForgeryToken] 屬性並嘗試在沒有實際令牌的情況下提交表單,則也可能發生這種情況。 您可以使用顯式呈現令牌

@Html.AntiForgeryToken()

這是首選解決方案或刪除驗證屬性。

我已經看到了XML Parsing error: no root element在幾種不同的情況下XML Parsing error: no root element錯誤。 它通常只出現在 Firefox 開發者控制台中。

  1. 返回帶有空正文的200 OK響應代碼。 您的服務器應該返回204 No Content響應代碼。

  2. 返回204 No Content響應代碼,然后將內容附加到響應中。 您的服務器應該返回200 OK響應代碼。

  3. 返回不正確的Content-Type 將其設置為響應正文中使用的相同類型(JSON、XML、純文本等),否則可能會被錯誤解析。

如果這些都不能解決您的問題,我會檢查您所有的響應標頭是否正確。 Content-Length等其他字段也可能會干擾。

這是此錯誤消息的最高 Google 結果,我還沒有看到涵蓋另一個棘手案例的答案,所以這里是:

如果您的 SVG 服務正確,但缺少結束</svg>標簽,也會發生這種情況! 例如,如果響應僅部分提供,因為它是流式響應並且在中途出錯......

我解決了我的問題

return NoContent();

當你什么都不想要返回時似乎更清楚。

我通過返回 OkObjectResult 而不是 Ok() 來修復。

舊代碼:

Return Ok();

新代碼:

return new OkObjectResult(true);

注意:添加命名空間 Microsoft.AspNetCore.Mvc.Infrastructure 后可以使用 OkObjectResult。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM