2015-08-29 77 views
1

嗨我試圖從一個站點使用json數據,但是我無法使用jsonp來完成,不知道我是否編寫了錯誤的代碼或者它是服務。即使使用JSONP也無法從外部服務獲取JSON

<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消耗它。

+0

請將error屬性放在success屬性後,並給它一個console.log()或alert()來顯示錯誤,然後報告。 –

+0

跨源請求被阻止:同源策略不允許通過https://www.camaradenegocios.com/api/get/讀取遠程資源。 (原因:CORS請求失敗)。 – GlacialVoid

回答

0

我希望你已經包括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將有原始響應,你將不得不字符串化它有它的可讀格式。您也可以將此響應作爲對象進行操作,並從中提取屬性和成員。

+0

是的,我做到了。得到以下結果:跨源請求被阻止:同源策略不允許通過https://www.camaradenegocios.com/api/get/promotions讀取遠程資源。 (原因:CORS請求失敗)。 – GlacialVoid

+0

不工作,這讓我瘋狂。提供商給了我這個:https://www.camaradenegocios.com/app_dev.php/api/get/promotions,什麼也沒有。 – GlacialVoid

0

嘗試使用$.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>

+2

什麼是回調參數? URL沒有返回jsonp – charlietfl

+0

@charlietfl你是對的。查看更新的帖子;從url中刪除了不必要的'?callback ='; – guest271314

0

現在我得到它的工作,不知道供應商有什麼問題,反正。此外,我正在閱讀有關提交,因爲它做回發它不檢索數據。

$(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(); 
    }); 

現在只有我必須正確解析數據。

謝謝。

相關問題