Search code examples
odatasapui5ui5-toolingsap-business-application-studiosap-business-technology-platform

Loading of `$metadata` fails due service from https://services.odata.org not supporting CORS


I am trying to consume Northwind R/W OData service link: https://services.odata.org/V3/OData/OData.svc/.

It is working fine on local testing. But without using proxy or mock server, the service reports the following error:

NetworkError: 501 Not Implemented

Controller code:

// ODataModel required from "sap/ui/model/odata/v2/ODataModel"
var oModel = new ODataModel({
  serviceUrl: "https://services.odata.org/V3/OData/OData.svc/",
  headers: {
    DataServiceVersion: "3.0",
    MaxDataServiceVersion: "3.0"
  }
});

Solution

  • As you're using Northwind, I believe it's only for development. So you can make use of https://cors-anywhere.herokuapp.com/ to access cross origin resources.

    var oModel = new ODataModel({ // required from "sap/ui/model/odata/v2/ODataModel"
      serviceUrl: "https://cors-anywhere.herokuapp.com/https://services.odata.org/V2/(S(frik5l2zde0sxh4jiifyhqo4))/OData/OData.svc/"
    });
    

    Or the other way would be to disable security flag in chrome for development make use of destination settings within SCP.