【问题标题】:Invalid MIME part type - UI5MIME 部分类型无效 - UI5
【发布时间】:2021-02-16 15:39:37
【问题描述】:

在处理批处理响应期间,Chrome 出现错误。我在 Firefox、Edge 和 Chromium 上进行了尝试,只有最新版本的 Chrome 才会出现错误。在此示例中,我使用自己的本地 OData 服务器:

我在这里尝试阅读https://services.odata.org/V2/OData/OData.svc/

调试后我发现了区别在哪里:https://openui5.hana.ondemand.com/resources/sap/ui/thirdparty/datajs.js

我比较了 Chrome 和 Edge,我注意到不同之处在于标题和读取方式。首先,您可以从 Edge 和 Chrome 中看到属性 x.headers。在 Edge 上,标头不包含 application/json。我已经在 Chrome 上调试并删除了其余部分,所以它看起来像 Edge,然后就可以工作了。

它自己的 BATCH 如下所示:

--batchresponse_678d942c-694d-45a8-80ea-9174b251f69b
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 200 OK
Cache-Control: no-cache
DataServiceVersion: 2.0;
Content-Type: text/plain;charset=utf-8

3
--batchresponse_678d942c-694d-45a8-80ea-9174b251f69b
Content-Type: application/http
Content-Transfer-Encoding: binary

HTTP/1.1 200 OK
Cache-Control: no-cache
DataServiceVersion: 1.0;
Content-Type: application/json;charset=utf-8

{
"d" : [
{
"__metadata": {
"uri": "https://services.odata.org/V2/OData/OData.svc/Categories(0)", "type": "ODataDemo.Category"
}, "ID": 0, "Name": "Food", "Products": {
"__deferred": {
"uri": "https://services.odata.org/V2/OData/OData.svc/Categories(0)/Products"
}
}
}, {
"__metadata": {
"uri": "https://services.odata.org/V2/OData/OData.svc/Categories(1)", "type": "ODataDemo.Category"
}, "ID": 1, "Name": "Beverages", "Products": {
"__deferred": {
"uri": "https://services.odata.org/V2/OData/OData.svc/Categories(1)/Products"
}
}
}, {
"__metadata": {
"uri": "https://services.odata.org/V2/OData/OData.svc/Categories(2)", "type": "ODataDemo.Category"
}, "ID": 2, "Name": "Electronics", "Products": {
"__deferred": {
"uri": "https://services.odata.org/V2/OData/OData.svc/Categories(2)/Products"
}
}
}
]
}
--batchresponse_678d942c-694d-45a8-80ea-9174b251f69b--

[更新]

所以,这越来越奇怪了。我刚刚发现在 Chrome 中它可以在隐身模式下工作,但不能在正常模式下工作。我试过用Northwind,它是一样的。它仅适用于隐身模式。我正在使用来自https://openui5.hana.ondemand.com/resources/sap-ui-core.js 的最新版本的 UI5,我正在使用来自https://github.com/SAP/openui5-masterdetail-app 的模板。

我使用的是 Chrome 版本 88.0.4324.150,我也尝试过删除缓存

在 openui5-masterdail-app 我只修改了 oData 服务:

“uri”:“https://cors-anywhere.herokuapp.com/https://services.odata.org/V2/OData/OData.svc/”,

Master.view.xml

<List
                id="list"
                width="auto"
                class="sapFDynamicPageAlignContent"
                items="{
                    path: '/Suppliers'
                }"


<items>
                    <ObjectListItem
                    title="{Name}"

【问题讨论】:

  • Northwind 服务也会发生这种情况吗?您使用的是哪个 UI5 版本?问题还缺少一些代码/mcve。没有它,就很难提供帮助。
  • 如果你的 chrome 是什么版本? Edge v90 中的 PDFViewer 存在问题,因此这可能是一个更大的问题。
  • @BoghyonHoffmann 感谢您的提示。我已经更新了问题。
  • @Marc 我已经更新了这个问题。如果您在 Edge 的隐身模式下也遇到问题,您可以尝试一下吗?
  • 我认为有多种因素导致这个问题出现。我建议选择一个不同的、维护得更好的 OData 服务(例如 services from SAP ES5 system 之一),并避免使用 cors-anywhere,但使用 stackoverflow.com/a/53878337/5846045 中提到的文档化指南

标签: javascript google-chrome odata sapui5


【解决方案1】:

只是检查这种可能性 - 扩展。

您是否有任何扩展(例如:像 AdBlocker - 不是说 Adblocker 是罪魁祸首……但类似的工作方式),可能会拦截返回的有效负载?

要排除这种情况,请执行以下操作:

  • 在 chrome 中,创建一个新的配置文件/帐户 - 没有任何扩展。
  • 切换到该帐户,然后尝试运行该应用。
  • 如果可行,请返回您的原始帐户,并开始一一禁用扩展程序 - 找出可能是哪个问题。

同样,我不能 100% 确定,如果扩展是这里的确切问题 - 但我在我构建的一些应用程序中遇到了这个问题。因此,值得一试——尤其是在没有任何扩展的情况下创建新配置文件的第一步,并且测试会很快。

最好的问候, 戈帕尔奈尔。

【讨论】:

  • 您好 Gopal,感谢您的提示。我会检查它。我还将尝试部署在可以从不同 PC 访问的服务器中。正如您所说,它可能位于我的 Chrome 上
猜你喜欢
  • 2016-01-11
  • 2021-02-27
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 2018-07-25
  • 2013-04-20
相关资源
最近更新 更多