簡體   English   中英

如何在成功回調函數中獲取$ .ajax()請求參數?

[英]How to Get $.ajax() request parameter at success callback function?

我想在成功回調函數中獲取ajax數據參數

像波紋管

$.ajax({
     url: 'example.com/something',
     method: 'GET',
     data: { 'sample':'test' }, // => I want this data in success function.
     success: function(response, textStatus, jqXHR){
          // want get data parameter
          // {'sample':'test'}

          // someone answered that could get below code but I couldn't get it 
          // console.log(this.data);  => X 
     }
});

應該能夠在成功處理程序中鍵入data.sample以獲得值。 或者,您可以執行data['sample'] ,但該語法確實存在更多,可讓您將屬性名稱存儲在變量中以從對象中檢索數據。

更改methodtypeconsole.log(data)以查看傳遞給回調函數的data的內容。

另外,在調用中添加dataType: 'json'

$.ajax({
     url: 'example.com/something',
     type: 'GET',
     dataType: 'json',
     data: { 'sample':'test' },
     success: function(data, textStatus, jqXHR){
          console.log(data);  // will display the content of data 
     },
     error: function(a,b,c) {
          console.log('something went wrong:',a,b,c);
     }
});

在您的情況下,您需要使用data.sample而不是this.data來訪問值“ test”。

嘗試查看JSON對象,因為通常這將返回AJAX請求。 您將在JS中大量使用“點符號”。

你的后端代碼是什么? Java的C#的PHP? 如果使用c#和mvc控制器,則可以定義一個動作,該動作中的pramater將是ajax傳遞

  // want get data parameter // {'sample':'test'} 

通過data作為屬性jqxhr在對象beforeSend ,在獲得對象success

$.ajax({
  url: 'example.com/something',
  method: 'GET',
  data: {
    "sample": "test"
  },
  beforeSend: function(jqxhr, settings) {
    jqxhr._data = settings.url.split("?").pop();
  },
  success: function(data, textStatus, jqXHR) {
    // want get data parameter
    // {'sample':'test'}
    var _data = jqXHR._data.split("&").slice(0, 1).pop().split("=");
    var obj = {}; obj[_data[0]] = _data[1];
    console.log(_data, obj);
    // var obj = {}; 
    // someone answered that could get below code but I couldn't get it 
    // console.log(this.data);  => X 
  }
})

其他解決方案,您可以將數據直接放入變量中:

var dataObj = { 
  sample:'test' 
}; // => I want this data in success function.

$.ajax({
 url: 'example.com/something',
 method: 'GET',
 data: dataObj,
 success: function(response, textStatus, jqXHR){
      // then just console.log(dataObj.sample)
 }
});

暫無
暫無

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

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