2017-04-06 124 views
0

所以我對這個愚蠢的問題:Ajax請求什麼?

$.ajax({ 
      type: "GET", 
      url: `URL`, 
      data: DO STUFF WITH WHAT I GOT FROM THE REQUEST???, 
     }); 

在阿賈克斯,當我提出從URL的GET請求,與data:參數我在給那就是datadata我接收到的數據的響應從請求?

+0

代碼中的'data'屬性是您發送給服務器的數據。 – David

+0

那麼我該如何處理從GET獲得的數據呢?無論我閱讀文檔多少,這都讓我感到困惑。 –

+0

您提供回調來處理異步響應。看看示例中的'.done()'回調:http://api.jquery.com/jquery.ajax/ – David

回答

1

你可以用Ajax調用的成功部分數據的東西:

$.ajax({ 
    dataType: 'json', 
    url: url, 
    data: data, 
    success: success 
}); 

在這種情況下,潛在的成功回調應該是這樣的:

function success(data) { 
    // do something with data, which is an object 
} 

或有沒有要發送的數據:

function testAjax(handleData) { 
    $.ajax({ 
    url:"getvalue.php", 
    success:function(data) { 
     handleData(data); 
    } 
    }); 
} 
+0

所以我真的不需要'data:',如果我想要的是在我發出請求時從服務器接收到的數據。我只是在'成功(數據收到)=> {做東西}',' –

+1

是的,如果你沒有發送任何東西。看到我更新的答案。回調函數的數據參數是從ajax調用返回的內容。 – Wiredo

+0

我結束了使用這個,它的作品就像一個魅力,謝謝! –

1

這裏要理解的主要問題是,任何AJAX調用(真正的任何Web請求)都有兩個組件:請求和響應。實際的$.ajax()函數調用發送請求,並提供回調函數來處理響應。

舉例說明:

$.ajax({ 
    type: "GET", // request type 
    url: "http://www.example.com/someResource", // destination URL 
    data: { name: "David", location: "Boston" } // data to send 
}); 

這將使一個GET請求到指定的URL,它發送指定的數據。在這種情況下的響應被忽略,因爲沒有提供回調。但是你可以提供一個:

$.ajax({ 
    type: "GET", 
    url: "http://www.example.com/someResource", 
    data: { name: "David", location: "Boston" } 
}).done(function(response) { 
    // handle the response 
}); 

其中包含「處理響應」功能將被系統時,從服務器接收Ajax響應被調用。 response變量(或任何你想調用該變量,名稱無關緊要)將包含無論服務器發送的回報。這可能是什麼,真的。

+0

所以我真的不需要'data:',如果我想要做的就是在我提出請求時接收從服務器收到的數據。我只是在'.done((收到的數據)=> {do stuff})中完成所有操作;' –

+1

@RyanTibbetts:如果沒有要發送的數據,那麼確定。文檔中有很多選項可供使用,但對於任何給定的AJAX請求,它們都是必需的。 – David

+0

我沒有試過這個看看這個實際上是否工作,我假設它是這樣的,但是我用成功的方式來處理數據,感謝你的幫助David,你也讓我更瞭解ajax請求。 –