2014-09-02 63 views
0

我對錶單,帖子和回覆有問題。在我的表單我調用一個函數(JavaScript的)與阿賈克斯後:如何發佈ajax並獲得響應?

var vars = "test="+test; 
$.ajax({ 
    type: "POST", 
    url: "index.php", 
    data: vars 
}).done(function(data) { 
    alert(data); 
}).fail(function(data) { 
    alert(data); 
}); 

在我的index.php接收所有數據:

<?php 
    $test = $_POST['test']; 
    //do something 
?> 

後,我得給回值到以前的PHP。 我該怎麼辦?謝謝

+3

那麼什麼問題,您也越來越? – 2014-09-02 07:43:07

回答

-1
var vars = "test="+test; 
$.ajax({ 
    type: "POST", 
    url: "index.php", 
    data: vars 
    success: function(html){ 
     alert(html) 
    } 
}); 
的index.php中

,進入後續的代碼,並檢查

<?php 
    $test = $_POST['test']; 
    //do something 
    echo $test 
?> 
0

與其他HTTP請求發回數據的方式相同。

header("Content-Type: text/plain"); # Avoid introducing XSS vulnerabilities 
echo $test; 
0

如果您需要返回一個簡單的值,你可以echo它,它會回來的響應。

如果您需要返回更復雜的結構,請將其存儲在PHP數組中,例如$response,然後使用echo json_encode($response);將其輸出回javascript。

+0

不要'echo json_encode($ response);'不要'header(「Content-Type:application/json」)''。沒有它,代碼很容易受到XSS攻擊。 – Quentin 2014-09-02 07:45:28

+2

我一直都是這樣做的。如果問題不多,可否鏈接到解釋爲什麼不好的資源? – 2014-09-02 07:46:48

+2

它允許攻擊者利用嵌入式JavaScript製作一個鏈接,您的代碼將轉向它告訴瀏覽器帶有嵌入式JavaScript的HTML。然後他們欺騙受害者點擊鏈接。然後,瀏覽器將執行該代碼,就像它是您的代碼一樣,具有所有安全特權(訪問Cookie,訪問本地存儲,向您的域進行XHR請求的能力等)。 – Quentin 2014-09-02 07:49:24

0

這可能有助於

的Javascript

var vars = { test : "test" }; 
$.ajax({ 
    type: "POST", 
    url: "index.php", 
    dataType : 'json', 
    data: vars, 
    success : function(data) { 
     console.log(data); 
    }, 
    error : function(resp) { 
     console.log(resp.responseText); 
    } 
}); 

PHP

<?php 
    $test = $_POST['test']; 
    echo json_encode($test); 
?> 

嘗試,並檢查控制檯日誌

+0

不要在沒有header(「Content-Type:something/appropriate」)或HTML編碼數據的情況下回顯用戶輸入。否則你將會打開一個XSS漏洞。 – Quentin 2014-09-02 07:46:52

+0

什麼是XSS?我通常使用它,一切都沒有問題,但只有當我想通過跨域來獲得數據交易時才使用標題(...) – kefy 2014-09-02 07:49:44

+0

https://www.owasp.org/index.php/XSS – Quentin 2014-09-02 07:50:32

-1

如果必須在JSON返回數據墊然後使用

echo json_encode($test); 

否則,您可以簡單地在ajax響應中回顯您需要的變量。即

echo $test;