如何发布ajax并获得响应?
我对表单,帖子和回复有问题。在我的表单我调用一个函数(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。 我该怎么办?谢谢
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
?>
与其他HTTP请求发回数据的方式相同。
header("Content-Type: text/plain"); # Avoid introducing XSS vulnerabilities
echo $test;
如果您需要返回一个简单的值,你可以echo
它,它会回来的响应。
如果您需要返回更复杂的结构,请将其存储在PHP数组中,例如$response
,然后使用echo json_encode($response);
将其输出回javascript。
不要'echo json_encode($ response);'不要'header(“Content-Type:application/json”)''。没有它,代码很容易受到XSS攻击。 – Quentin 2014-09-02 07:45:28
我一直都是这样做的。如果问题不多,可否链接到解释为什么不好的资源? – 2014-09-02 07:46:48
它允许攻击者利用嵌入式JavaScript制作一个链接,您的代码将转向它告诉浏览器带有嵌入式JavaScript的HTML。然后他们欺骗受害者点击链接。然后,浏览器将执行该代码,就像它是您的代码一样,具有所有安全特权(访问Cookie,访问本地存储,向您的域进行XHR请求的能力等)。 – Quentin 2014-09-02 07:49:24
这可能有助于
的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);
?>
尝试,并检查控制台日志
如果必须在JSON返回数据垫然后使用
echo json_encode($test);
否则,您可以简单地在ajax响应中回显您需要的变量。即
echo $test;
那么什么问题,您也越来越? – 2014-09-02 07:43:07