Ajax到php调用不成功

时间:2013-06-04 00:24:45

标签: php javascript jquery ajax

我正在尝试通过执行以下操作来测试邮件上的ajax调用,仅用于测试目的,但由于某种原因,调用永远不会成功。我一直在寻找,我找不到太多可以解释为什么这不起作用。

$.ajax({
    type: "POST",
    url: "file.php",
    success: function(data) {
        if(data == 'true'){
            alert("success!");
        }
    },
    error: function(data) {
        alert("Error!");
    }});

file.php包含以下内容:

<?php 
    return true;
?>

有人可以指出我正确的方向。我意识到这看似简单,但我很难过。感谢。

6 个答案:

答案 0 :(得分:5)

return true将使脚本退出。你需要:

echo 'true';

答案 1 :(得分:0)

首先检查你的路径。 file.php是否与您的javascript所包含的文件位于同一文件夹中?

如果您的路径不正确,如果您使用的是Chrome,则会在您的javascript控制台上显示404错误。

另外你应该将你的php更改为:

<?php

echo 'true';

一旦你的路径正确并修改你的php,你就应该好好去。

答案 2 :(得分:0)

您是否尝试过直接访问该文件并查看是否输出了某些内容?

return true不应该在那种情况下使用(或者任何其他,最好使用exit或die),通过AJAX调用得到的所有内容都是由服务器端生成的超文本,你应该使用(因为他们在回声之前指出你) '真正的')

如果问题仍然存在,您还可以尝试传统的AJAX调用XMLHttpRequest(不带JQuery),然后检查请求和服务器之间是否有任何问题。

编辑:另外,不要通过比较检查,只需对“数据”发出警报,看看它是什么。

答案 3 :(得分:0)

除了echo'true'建议之外,您还可以尝试提醒返回到ajax的实际数据。这样你就可以看出你的if语句是否具有正确的值/类型。

success: function(data) {
    alert(data);
}

答案 4 :(得分:0)

试试这个,新的ajax语法

$.ajax({ type: "POST", url: "file.php" }).done(function(resp){
    alert(resp);
});

答案 5 :(得分:0)

这是正确的方法:

$.ajax({
    type : "POST",
    url : "file.php",
    success : function (data) {
    /* first thing, check your response length. If you are matching string
       if you are using echo 'true'; then it will return 6 length,
       Because '' or "" also considering as response. Always use trim function
       before using string match. 
    */
        alert(data.length);
        // trim white space from response
        if ($.trim(data) == 'true') {
            // now it's working :)
            alert("success!");
        }
    },
    error : function (data) {
        alert("Error!");
    }
});

PHP代码:

<?php 
echo 'true'; 
// Not return true, Because ajax return visible things.
// if you will try to echo true; then it will convert client side as '1'
// then you have to match data == 1
?>