javascript - Why does my API call work in Chrome but not in my code? - Stack Overflow

I'm trying to call the Binance API to get the LTC price in BTC and I tested the link on my browser

I'm trying to call the Binance API to get the LTC price in BTC and I tested the link on my browser "; How do i get the JSON file from that link into my JavaScript file?

$(document).ready(function() {

var url = '';

$.ajax( {
    url: url,
    dataType: 'jsonp',
    type: 'GET',
    success: function(data) {
            console.log(data); //returns nothing
        }
});

})

I'm trying to call the Binance API to get the LTC price in BTC and I tested the link on my browser "https://api.binance./api/v1/ticker/price?symbol=LTCBTC" How do i get the JSON file from that link into my JavaScript file?

$(document).ready(function() {

var url = 'https://api.binance./api/v1/ticker/price?symbol=LTCBTC';

$.ajax( {
    url: url,
    dataType: 'jsonp',
    type: 'GET',
    success: function(data) {
            console.log(data); //returns nothing
        }
});

})
Share Improve this question edited Nov 17, 2023 at 21:40 Brian Tompsett - 汤莱恩 5,89372 gold badges61 silver badges133 bronze badges asked Apr 20, 2019 at 19:28 crypto virtexcrypto virtex 657 bronze badges 2
  • in my browser jsonp plains blocked due to MIME type (“application/json”) mismatch, and json plains CORS – 1565986223 Commented Apr 20, 2019 at 19:34
  • are you using an api key? – Arleigh Hix Commented Apr 20, 2019 at 19:48
Add a ment  | 

4 Answers 4

Reset to default 4

As mentioned in other answer, there is CORS issue. So you can try with proxyURL from client side as below,

$(document).ready(function() {

var url = 'https://api.binance./api/v1/ticker/price?symbol=LTCBTC';

const proxyURL = "https://cors-anywhere.herokuapp./";
$.getJSON(proxyURL + url, function(playerData) {
  console.log(playerData);
});
});
<script src="https://cdnjs.cloudflare./ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Hope it helps.

The request to https://api.binance./api/v1/ticker/price?symbol=LTCBTC provides json data this uses CORS policy

{"symbol":"LTCBTC","price":"0.01520100"}

JSONP would look like

myCallback({"symbol":"LTCBTC","price":"0.01520100"})

This looks like and works like a Javascript / PHP function.

The URL for a jsonp includes a callback in the URL ... https://api.binance./api/v1/ticker/price?symbol=LTCBTC&callback=myCallback

But is not supported on this site

{"code":-1101,"msg":"Too many parameters; expected '1' and received '2'."}


It might be openable with php on your site? I can not test from the system I'm on I don't have socket transport "ssl" setup on my tablet to test.

Yes it works from a PHP wrapper.

myJSONP(<?php echo file_get_contents('https://api.binance./api/v1/ticker/price?symbol=LTCBTC');?>);

If you check on console after change dataType: 'jsonp' to dataType: 'json', you will get the following as your code and their script not on same host and they need to enable Access-Control-Allow-Origin to access from other domain. You may use cur if you use php.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://api.binance./api/v1/ticker/price?symbol=LTCBTC. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

While performing the request from your browser or postman or fiddler you will get the result

But while performing a request from the application you will be failed with error message

Access to XMLHttpRequest at 'https://api.binance./api/v1/ticker/price?symbol=LTCBTC' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

The issue has to be fixed from your server side end.

Please refer

Cors understanding

Also, find the solution to the problem if you're using C# .Net as your backend

Solution for cors

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745438943a4627742.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信