2016-08-23 71 views
-2

我嘗試使用AJAX(純JS)將數據發送到服務器。我想將它發送給請求主體。如何使用ajax和php發送和接收內容

我知道如何做到這一點jQuery中:

$.ajax({ 
    url: 'someurl', 
    data: 'foo' 
}); 

我的意思是我怎麼能像jQuery用ajax方法時,不會與純JS數據屬性將數據發送到服務器?

此外,在PHP中,我如何獲得這些數據?

我知道,與laravel我需要做

Request::getContent(); 

(如果我沒記錯的話)

但我不知道如何在PHP中得到這個數據。

感謝

+0

一個谷歌搜索 「JavaScript的AJAX例如」 顯示很多很多的例子。包括在這裏堆棧溢出:http://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery至於如何獲取PHP中的數據,任何介紹性的PHP教程將顯示如何讀取GET和POST數據。 – David

+0

@David你不明白我的問題,我不想發送post/data中的數據我想發送它在請求正文 –

+0

這是一個POST請求*做*。它在請求主體中發送數據。如果問題的內容比問題的內容更多,也許你可以在問題本身中進行闡述?包括您嘗試的內容和您卡住的位置的示例。 – David

回答

2

在發送通過JavaScript AJAX請求,而不依賴於jQuery的方面,這是一個非常寬泛的問題。你應該可能review the documentation here

一個簡單的例子

// Old compatibility code, no longer needed. 
if (window.XMLHttpRequest) { // Mozilla, Safari, IE7+ ... 
    httpRequest = new XMLHttpRequest(); 
} else if (window.ActiveXObject) { // IE 6 and older 
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

httpRequest.open('POST', url); 
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
var data = /* some data here */ 
httpRequest.send('data=' + encodeURIComponent(data)); 

要獲得這個在PHP中你可以使用任何$_POSTfile_get_contents('php://input')取決於請求發送Content-type頭。上面的例子中,我們使用了一個application/x-www-form-urlencodedContent-type標頭,其中有一個POST HTTP動詞,因此信息將填充在$_POST['data']中。

+0

但我不想發送數據作爲後變量,我想發送請求主體中的數據 –

+1

請求主體中的POST變量___is___。如果您希望將其作爲「application/x-www-form-urlencoded」內容類型以外的內容發送,則始終可以這樣做。 – Sherif

-1

希望這有助於!這是一個非常廣泛的AJAX請求,我試圖讓示例儘可能容易理解! :)

我的web-page.php文件

<a onclick="<?php $myValue; ?>">Send request</a> 

<script> 
    $.ajax({ 
     type: "POST", 
     url: 'my-script.php', 
     data:{ 
      action: 'send', 
      key: $myValue 
     } 
    }); 
</script> 

我-script.php的

<?php 
    $myValue = $_POST['key']; 
?>