无法使用ajax访问php

时间:2013-06-22 08:50:39

标签: php javascript ajax

我遇到了问题,我无法使用我的$ .ajax()调用来访问我的php文件。我总是得到 jqXHR.status为0.这是我的代码:

带有$ .ajax()调用的

函数:

function updateClubInfo(text) {
    var data = text;
    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: '../php/updateInfo.php',
        data: {
            infoText: data,
            action: "update"
        },
        success: function() {
            // do nothing
            alert('success');
        },
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Time out error.');
            } else if (exception === 'abort') {
                alert('Ajax request aborted.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
}

我在我的项目中构建了类似于其他人的请求,但这是唯一一个 这不起作用。这里是我想要访问的PHP文件:

php code snippet(updateInfo.php):

<?php
    $action = $_POST['action'];
    $text = $_POST['data'];

    myLog($action);
    myLog($text);

    echo "hello";


    /*
     * Writes entry in Logfile
     */
    function myLog($data) {
        $text = @file_get_contents('log.txt');
        $text = $text . "\n" . $data;
        @file_put_contents('log.txt', $text);
    }   
?>

当我尝试在URI中访问此PHP文件时,将输出echo。所以我觉得 问题应该在ajax调用中。

有人知道我做错了什么吗?我很感激任何帮助。

很多你的帮助 克里斯

2 个答案:

答案 0 :(得分:2)

您的PHP文件中有一个复制/粘贴错误。它应该是:

$action = $_POST['action'];
$text = $_POST['infoText'];//instead of $_POST['data']

<强>更新

因为您的AJAX请求要求提供JSON数据,但您只在PHP文件中编写文本。因此,AJAX请求将答案解释为void,然后HTTP status = 0

解决方案

dataType选项与您发送到服务器的数据类型无关,而与您期望从服务器返回的类型或数据有关。将dataType: 'json',更改为dataType: 'html',或者将其删除以让JQuery选择适当的模式。

答案 1 :(得分:0)

$action = $_POST['action'];
$text = $_POST['data'];

myLog($action);
myLog($text);
$arr[] ='hello';

echo json_encode($arr);


/*
 * Writes entry in Logfile
 */
function myLog($data) {
    $text = @file_get_contents('log.txt');
    $text = $text . "\n" . $data;
    @file_put_contents('log.txt', $text);
}   


json data fetch only in array