我尝试在JavaScript中收到PHP响应。
我的PHP看起来像这样:
some code if(...) echo "1"; else echo "2";
JavaScript的:
function GetChoice() { var returned=""; $.ajax({ async: false, cache: false, url: "http://mydomain.com/script.php", type: "POST", dataType:"text", success: function(data) { returned = data; } }); return returned; } var r = GetChoice(); alert(r);
但GetChoice()
没有任何回报。怎么了?
UPD:如果javascript和php脚本在同一台服务器上,它可以正常工作。我的脚本在不同的域中。
答案 0 :(得分:1)
试试这个:
function GetChoice() {
var returned = "";
$.ajax({
async:false,
cache:false,
url:"http://mydomain.com/script.php",
type:"POST",
dataType:"text",
success:function (data) {
alert(data);
}
});
}
答案 1 :(得分:1)
试试这个:
temp1.php
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
function GetChoice() {
var returned = "";
$.ajax({
async: false,
cache: false,
type: "POST",
url: "http://localhost/temp2.php",
data: { name: "John"}
}).done(function( msg ) {
returned = msg;
});
return returned;
}
var r = GetChoice();
alert(r);
</script>
temp2.php
<?php
echo $_REQUEST["name"];
?>
它的工作......!
答案 2 :(得分:1)
问题是,在您的示例中,$ .ajax立即返回,并且在您传递的函数甚至调用成功回调之前执行下一个语句return result;。 这是解释。 How do I return the response from an asynchronous call?
运气,
答案 3 :(得分:0)
GetChoice()在成功回调之前不会返回任何内容。
回调是您定义为成功参数的函数,在从服务器请求数据之前不会触发。
这是异步的(AJAX中的A)所以其余的代码继续导致GetChoice()函数在回调运行之前返回
答案 4 :(得分:0)
这是脚本
<script type="text/javascript">
$.ajax({
async:false,
cache:false,
url:"http://path.com/to/file",
type:"POST",
dataType: "html",
data: 'data',
success: function(data){
alert(data);
}
});
并在您的PHP文件中编写此代码
<?php
function test()
{
$str = 'This is php file';
return $str;
}
echo test();
?>
确保php文件的路径正确并将脚本添加到另一个PHP文件中。基本上你需要2个文件。刚刚在我的编辑器中对此进行了测试并且有效。
答案 5 :(得分:0)
function GetChoice() {
var returned="";
$.ajax({
url: "../script.php",
type: "POST",
success: function(data) {
returned = data;
}
});
return returned;
}
var r = GetChoice();
alert(r);