即使使用 JSONP 也无法从外部服务获取 JSON

Can't get JSON from external service even using JSONP

您好,我正在尝试使用来自站点的 json 数据,但我无法使用 jsonp 执行此操作,不确定是我编码有误还是服务。

   <script>
    $(function () {
        $("#frmInstrumento").submit(function(event) {
            alert("hello");
            $.ajax({
                url: "https://www.camaradenegocios.com/api/get/",
                // The name of the callback parameter, as specified by the YQL service
                jsonp: "promotions",

                // Tell jQuery we're expecting JSONP
                dataType: "jsonp",

                // Work with the response
                success: function( response ) {
                    alert(response);
                    console.log( response ); // server response
                }
            });
        });
    });
    </script>

要使用的 url 是 https://www.camaradenegocios.com/api/get/promotions 如果我浏览,我可以看到数据,但不能用 Jquery 使用它。

尝试利用 $.getJSON() ;响应似乎是 JSON ,而不是 JSONP

$.getJSON("https://www.camaradenegocios.com/api/get/promotions"
, function(data) {
  console.log(JSON.stringify(data, null, 2));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>

我希望你已经包含了 jQuery 库。如果没有,请在您的 HTML 页眉中加入类似这样的内容:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

我认为如果您尝试获取 JSON 数据而不是 JSONP,它应该可以工作。用下面提到的代码替换您的代码将按预期工作,获取我们在浏览 URL.

时看到的响应数组
<script>
$(function () {
    $("#frmInstrumento").submit(function(event) {
        alert("hello");
        $.ajax({
            url: "https://www.camaradenegocios.com/api/get/promotions",
            // The name of the callback parameter, as specified by the YQL service

            // Tell jQuery we're expecting JSON
            dataType: "json",

            // Work with the response
            success: function( response ) {
                alert(response);
                console.log( response ); // server response
            }
        });
    });
});
</script>

现在 response 将有原始响应,您必须将其字符串化以使其成为可读格式。您也可以将此响应作为一个对象来使用,并从中提取属性和成员。

现在我可以使用它了,但不确定提供程序出了什么问题。我也在阅读有关提交的内容,因为它会进行回发,因此不会检索数据。

  $(function(){
      loadData = function(){
        $.ajax({
            url: 'https://www.camaradenegocios.com/api/get/promotions',
            method: 'GET',
            dataType: 'json',
            crossDomain: true,
            success: function(response){ 
                $.each(response, function(key, data) {
                    alert(key);
                    $.each(data, function (index, data) {
                        console.log('index', data);
                        alert(data);
                    })
                })      
            }
        });    
      };

      loadData();
  });

现在只有我要正确解析数据了。

谢谢。