簡體   English   中英

jQuery AJAX調用未返回數據

[英]jQuery AJAX call not returning data

我在這里有點傻。 我的ajax調用每次都運行error:函數。 我知道數據以JSON的形式返回,但是我已經將數據類型作為jsonp進行了處理,以允許跨源的東西。 我認為我無法做任何其他事情,除非我忘記了一些顯而易見的事情。 請-這有什么問題:

function sartleApi(type,endpoint,object,callback){


 $.ajax({
    contentType: "application/json",
    dataType: 'jsonp',
    type:type,
    data:object,
    url:"http://dev.sartle.com/includes/ajax_reviewcomment.php?rid=1178",
    success:function(data){
        callback(data);
    },

    error: function (xhr, textStatus, errorThrown) {
        alert(xhr.statusText);
        alert(xhr.responseText);
        alert(xhr.status);
        alert(errorThrown);
    }
});

}

您的網站不支持JSONP。

JSONP只是通過<script>標記將JSON對象傳遞給全局回調函數的一種奇特的方式。 它不首先發送AJAX請求,而是創建一個<script>標簽,從而規避了跨域限制。

JSON響應如下所示:

{"foo": "bar"}

但是JSONP響應是:

some_callback({"foo": "bar"})

該PHP腳本不會將JSON響應包裝在回調函數中(后者的名稱通常是通過callback GET參數指定的),因此您根本無法發出JSONP請求。 該請求將成功,但是不會調用全局回調函數,因此您將無法使用JSON。

  • stlll,這似乎是跨域問題:請嘗試使用此庫https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js

  • 作為jsonp ,結果已經是帶有javascript對象參數的回調函數。 確保實現了服務器返回的功能:服務器可以返回my_callback({...}) 您需要在客戶端實現my_callback函數。

  • successerror功能上放置一些alert / console.log。 發布問題前,請務必先進行一些調試。

  • 如評論中所述:說明ajax調用的返回代碼。

因此,試圖規避跨域問題,事實證明使用jSONP是一個壞主意。 我正在從本地主機運行這些調用,所以我將ajax調用中的網址更改為

url:"http://localhost/includes/ajax_reviewcomment.php?rid=1178"

我將這個URL構建為動態的,以便當前URL始終與服務器域一致,並且我應該處於良好狀態!

在類型中,您需要輸入“ GET”或“ POST”

$.ajax({
    contentType: "application/json",
    dataType: 'jsonp',
    type:type, <<<<<<------ here 
    data:object,
    url:"http://dev.sartle.com/includes/ajax_reviewcomment.php?rid=1178",
    success:function(data){
        callback(data);
    },

error: function (xhr, textStatus, errorThrown) {
    alert(xhr.statusText);
    alert(xhr.responseText);
    alert(xhr.status);
    alert(errorThrown);
}

});

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM