2012-12-20 46 views
2

我有一個AJAX調用是這樣發送字符串參數使用AJAX調用的jQuery

this.GetTransactionsInputToday = function() { 
      var status="complete" 
      $.ajax({ 
       url: '/Management/function1', 
       contentType: "application/json; charset=utf-8", 
       data: status, 
       type: 'GET', 
       cache: false, 
       success: function (result) { 
        return result; 
       } 
      }); 
     } 

我自己也嘗試做這樣的

this.GetTransactionsInputToday = function() { 
      var status="complete"; 
       $.ajax({ 
        url: '/Management/function1/' + status, 
        type: 'GET', 
        cache: false, 
        success: function (result) { 
         return result; 
        } 
       }); 
      } 

我在我的管理有一個控制器功能控制器控制器類

public JsonResult function1(string status) 
{ 
Some code here.. 
} 

問題是每次調用function1時,狀態的值都會爲空。 CAn任何人請讓我知道我在哪裏錯了?

回答

9

您需要爲您的數據發送data: {'status': status}定義名稱:

this.GetTransactionsInputToday = function() { 
    var status="complete" 
    var r = ''; 

    $.ajax({ 
     url: '/Management/function1', 
     contentType: "application/json; charset=utf-8", 
     data: {'status': status}, 
     type: 'GET', 
     cache: false, 
     success: function (result) { 
      r = result; 
     } 
    }); 

    return r; 
}; 

而且你this.GetTransactionsInputToday不會返回結果如你預期。 ajax函數的成功處理程序異步調用。因此,您的return r聲明將返回'',因爲它在Ajax請求完成之前被調用。

+0

有沒有辦法實現這一點:func ='getDetails'; data ='數據加載';然後在$ .ajax({... data:{func:data}。現在它發送名爲func的字符串,所以在PHP中是$ _POST ['func'],我想發送字符串內容作爲名稱到PHP不' func'但$ _POST ['getDetails']。任何想法? – Blue

2

您可能會錯誤地構造json參數。

使用JSON: data: "{'prop1': '" + value1+ "'}"

$.ajax({ 
      url: '/Management/function1', 
      contentType: "application/json; charset=utf-8", 
      data: "{'prop1': '" + value1+ "'}", 
      type: 'GET', 
      cache: false, 
      success: function (result) { 
       return result; 
      } 
     }); 
0

嘗試將AJAX功能之外的變量,然後返回它,這樣它在正確的範圍內。此外,爲了獲得即時價值,你需要使這個Ajax調用同步。

this.GetTransactionsInputToday = function() { 
    var status = "complete"; 
    var r = ''; 

    $.ajax({ 
     async : false, 
     url: '/Management/function1', 
     contentType: "application/json; charset=utf-8", 
     data: {'status' : status}, 
     type: 'GET', 
     cache: false, 
     success: function (result) { 
      r = result; 
     } 
    }); 

    return r; 
}; 
相關問題