2

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

带有 $.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 代码片段(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 文件时,会输出回显。所以我认为问题应该出在ajax调用中。

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

谢谢你的帮助 Cris

4

2 回答 2

2

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

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

更新

因为您的 AJAX 请求要求提供 JSON 数据,但您在 PHP 文件中仅写入文本。因此,AJAX 请求将应答解释为 void,则 HTTP 状态 = 0

解决方案

dataType选项不是关于您发送到服务器的数据类型,而是您期望从服务器返回的类型或数据。更改dataType: 'json',dataType: 'html',或删除它以让 JQuery 选择适当的模式。

于 2013-06-22T08:53:53.940 回答
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
于 2013-06-22T08:58:00.983 回答