gujaratiraja
gujaratiraja

Reputation: 379

MIME type ('application/json') is not executable, and strict MIME type checking is enabled

I am getting the following error:

Refused to execute script from 'https://query1.finance.yahoo.com/v8/finance/chart/%5EBSESN?callback=jQuery34102269614347819202_1588033301698&_=1588033301699' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.

My code - (added ?callback=?) at the end of the url:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
var sensex =
  'https://query1.finance.yahoo.com/v8/finance/chart/%5EBSESN?callback=?';

jQuery(function ($) {
  $.getJSON(sensex, function (data) {
    console.log(data.chart.result.meta.regularMarketPrice);
    var sensex_value = data.chart.result.meta.regularMarketPrice;
    document.getElementById('sensex_value').innerHTML = String(sensex_value);
  });
});

API response looks like:

{
    "chart": {
        "result": [
            {
                "meta": {
                    "regularMarketPrice": 31743.08,
                    "chartPreviousClose": 31327.22
                }
            }
        ]
    }
}

Upvotes: 2

Views: 1735

Answers (1)

Maxim Mazurok
Maxim Mazurok

Reputation: 4138

Here's a working version:

<div id="sensex_value"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
  var sensex =
    'http://www.whateverorigin.org/get?url=' +
    encodeURIComponent(
      'https://query1.finance.yahoo.com/v8/finance/chart/^BSESN'
    ) +
    '&callback=?';

  jQuery(function ($) {
    $.getJSON(sensex, function (data) {
      console.log(data.contents.chart.result[0].meta.regularMarketPrice);
      var sensex_value = data.contents.chart.result[0].meta.regularMarketPrice;
      document.getElementById('sensex_value').innerHTML = String(sensex_value);
    });
  });
</script>

Notable changes:

  • data.contents.chart.result[0].meta.regularMarketPrice is the correct path
  • I'm using whateverorigin.org to disable CORS. IMPORTANT: you shouldn't use it in production because websites like this are not reliable, instead, you should create your own backend API that would make requests to yahoo.

Everything else you got right.

Upvotes: 1

Related Questions