无法使用JQuery获取JSON

时间:2018-04-27 11:14:38

标签: javascript jquery json getjson

我正在尝试从网址获取json,但它无法正常工作,我也没有收到任何错误

index.js:

$(function () {
    $.getJSON("http://telegram-socks.tk/json", function (data) {
            $("textarea").html(JSON.stringify(data));
        }
    );
});

的index.html:

<html>
<head>
    <meta name="viewport" content="initial-scale=1" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" href="style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="index.js"></script>
</head>
<body>
    <div class="container-fluid">
        <div class="row text-center">
            <div class="col">
                <textarea class="form-control text-center" rows="50"></textarea>
            </div>
        </div>
    </div>
</body>
</html>

telegram-socks.tk/json:

{
    "Proxies": [
        "188.166.91.133:1080", 
        "51.15.100.63:1080", 
        ...
    ]
}

(根据jsonlint.com,telegram-socks.tk/json是有效的JSON)

2 个答案:

答案 0 :(得分:0)

试试这个:

$.getJSON("http://telegram-socks.tk/json", function(data) {
      console.log( "success" );
}).fail(function( jqxhr, textStatus, error ) {
console.log(data);
}); 

答案 1 :(得分:0)

如果您打开控制台,您可能会看到如下错误:

  

混合内容:&#39; https://yourpage.com&#39;是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点&#39; http://telegram-socks.tk/json&#39;。此请求已被阻止;内容必须通过HTTPS提供。

之所以会发生这种情况,是因为您所在的页面是SSL加密,并且正在尝试访问不安全的网址,而大多数浏览器本身会阻止该网页。

或者甚至喜欢这样:

  

无法加载http://telegram-socks.tk/json否&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; null&#39;因此不允许访问。

这是因为其他页面中的资源不安全而再次阻止您的请求的浏览器

请参阅下面的代码段并检查控制台:

&#13;
&#13;
$(function() {
  $.getJSON("http://telegram-socks.tk/json", function(data) {
    console.log(data);
  }).error(function(e) {
    console.log(e);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container-fluid">
  <div class="row text-center">
    <div class="col">
      <textarea class="form-control text-center" rows="50"></textarea>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

您可以在herehere

中查看有关该信息的更多信息