我知道这是如此简单的代码,但是某种程度上却无法正常工作。我要做的是调用的GET API:


  https://api.upcitemdb.com/prod/trial/lookup?upc=4011200296908


我想使用JavaScript或Jquery来调用此HTML。我已经尝试了很多东西,但是没有用。以下代码我已经应用但无法正常工作:



<!DOCTYPE html>
<html>
<body>

<button type="button" onclick="loadDoc()">Request data</button>

<script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      alert("responseText" + this.responseText);
    } else {
      alert("Error");
    }
  };
  xhttp.open("GET", "https://api.upcitemdb.com/prod/trial/lookup?upc=4011200296908", true);
  xhttp.send();
}
</script>

</body>
</html>





我也试图通过使用Ajax与Jquery调用相同的API。以下是相同的代码:



<!DOCTYPE html>
<html>
<body>
<header>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</header>
<button type="button" onclick="loadDoc()">Request data</button>

<script>
function loadDoc() {
    $.ajax({
        url:"https://api.upcitemdb.com/prod/trial/lookup?upc=4011200296908",
        success:function(response){
          alert(response);
        },
       error: function() {
        alert("Error");
        }
    });
}
</script>

</body>
</html>

最佳答案

那是经典!

如果打开开发人员选项卡(f12),可能会看到以下错误:


  加载失败
  https://api.upcitemdb.com/prod/trial/lookup?upc=4011200296908
  “ Access-Control-Allow-Origin”标头具有值
  'https://www.upcitemdb.com'


这意味着服务器https://api.upcitemdb.com不想让您在任何网站上使用他的资源,只能使用“ https://www.upcitemdb.com”。
如果您不拥有该站点,则无法加载该站点的资源,或者应要求管理员授予您的站点授权。
如果您拥有它,则可以了解有关CORS配置的更多信息。

09-27 01:35