2011-12-09 202 views
0
$.ajax({ 
     url: 'test.php', 
     type: 'GET', 
     dataType: 'json', 
     data: "last_name=SMITH&first_name=JOHN&middle_name=J", 
     contentType: "application/json; charset=utf-8", 
     success: function(response) { 
      var len = response.length; 
      for (var i = 0; i < len; i++) { 
      var name = response[i].LASTNAME + ", " + response[i].FIRSTNAME + " " + response[i].MIDDLE 
      var sysid = response[i].ORDERID 
      $("<li></li>") 
      .html("<a href='result.php?orderid=" + orderid + "'>" + name + "</a>") 
      .insertAfter($("#questions-divider")); 
      $("#questions").listview("refresh"); 
      } 

     } 
    }); 
}); 

這適用於GET。我試着用後,它失敗了。我在我的php頁面中有_POST。我改變了數據參數爲:爲什麼這個jquery ajax請求使用get而不是post?

data: '{ "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" }', 

但是這也失敗(與get和post)。我的PHP頁面返回,它無法找到我的有效載荷中的姓氏。 $_POST['last_name']從來沒有得到我的PHP頁面中的數據。用GET發送它並且工作(我改變了我的php使用$_GET進行測試,然後返回到$_POST)。

編輯:我試過,但它並沒有幫助:Cant get jQuery ajax POST to work

編輯:也:jquery $.post empty array

編輯:我能得到這樣的。不知道格式化數據爲什麼會失敗:

//data: '{ "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" }', 
    data: "last_name=SMITH&first_name=JOHN&middle_name=J", 
    //contentType: "application/json; charset=utf-8", 
    contentType: "application/x-www-form-urlencoded", 

回答

3

刪除引號以使數據的值成爲對象。應改爲:

data: { "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" },

3

下面是我用所有的時間,簡單的$就模板。它適用於一切。你的數據值應該是一個對象。

$.ajax({ 
    type: "POST", 
    url: "ajax.php",        // Your URL 
    //data: "action=whatever&user=" + username,  // You can do it like this. 
    data: {name: data, action: "whatever"},      // Or like this, Notice the Quotes 
    dataType: "html",                            // The Return Type of the data 
    success: function(xhr){                      // Success! :) 
        alert("success, ajax post was success"); 
    }, 
    error: function (xhr, ajaxOptions, thrownError){ // Your a failure :(
       alert(xhr.status); 
        alert(thrownError); 
    } 
}); 

你目前傳遞字符串的數據,它需要一個對象:

此致:

data: '{ "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" }', 

應該

data: { "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" }, 
相關問題