2016-02-05 185 views
-3

已在此上了一段時間。當「type:'POST'」更改爲「type:'GET'」時,下面的代碼完美工作。任何幫助爲什麼它不適用於POST?

$.ajax({ 
     type: 'POST', 
     url: 'http://www.example.com/ajax/test.php', 
     data: { name: "Overcomer", email : "[email protected]"}, 
     cache: false, 
     dataType: "html", 
     beforeSend: function() { console.log('firing ajax'); }, 
     success: function (response) { 
      console.log('success'); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      console.log("ERROR:" + xhr.responseText+" - "+thrownError); 
     } 
    }); 
+6

不起作用**如何**?在服務器端?你必須顯示處理請求的php。 –

+0

可能是因爲'test.php'正在尋找'$ _GET'中的參數,而不是'$ _POST'。 – Barmar

+0

緩存將適用於GET類型。以及上面提到的「Barmar」使用基於Ajax類型參數的正確全局變量。對於類型:後使用$ _POST和獲得使用$ _GET –

回答

1

如果您在jquery上更改GET以POST,您還必須在PHP中更改GET以POST。

所以,在你的PHP代碼的變化:$_GET['name']$_POST['name']$_GET['email']$_POST['email']以及任何(有關)$_GET$_POST

如果這是行不通的,在這裏發表您的PHP代碼。

+1

您也可以在PHP中使用'$ _REQUEST',然後它可以使用。 – Barmar

+0

'$ _REQUEST'默認包含'$ _GET,$ _POST和$ _COOKIE'的內容。使用兩者沒有多大區別,但我喜歡明確選擇方法。如果您使用'$ _REQUEST'來處理所有事情,您不能保證數據來自發布數據,這會導致腳本中出現安全漏洞。 – peixotorms

+0

我不認爲它是一個安全漏洞,因爲客戶端可以像Cookie一樣容易地操作'POST'參數。 – Barmar