0

JavaScript

$.ajax({
    type : 'POST',
    url : 'post.php',           
    data: dataString,
    success:function (data) {
        if (data==null) { alert("darnit!!!!");}    
            //$("#response").append(data);
            alert(dataString);
        }          
    });     
});

在 PHP 文件中只是一个简单的

print_r($_REQUEST);

也试过

echo "got iT!";

但是什么都没有,一直在寻找尝试过不同的东西,但没有运气首先 //alert (dataString);起作用,但在success:function (data)我没有收到任何警报之后 - 页面内没有响应!

我究竟做错了什么?

4

5 回答 5

0

JQuery 忽略您的数据返回通常意味着它不理解返回的格式,或者不知道会发生什么。将 dataType 设置为可接受的格式,并仔细检查您的 PHP 脚本是否确实将某些内容发送回 Firebug 控制台中的页面。

$.ajax({
    type : 'POST',
    url : 'post.php',           
    data: dataString,
    dataType: 'text',
    success:function (data) {
        if (data==null) { alert("darnit!!!!");}    
            //$("#response").append(data);
            alert(dataString);
        }          
    });     
});
于 2012-05-17T21:21:37.720 回答
0

首先:你错过了 ajax 函数的 dataType 属性,接下来,你需要传递 json 类型的数据,并且你在代码中有语法错误,试试这个:

$.ajax({
    type : 'POST',
    url : 'post.php',
    dataType: 'text',           
    data: {
        data_to_pass: dataString
    },
    success:function (data) {
        if (data==null) { 
            alert("darnit!!!!");
        } else {    
            //$("#response").append(data);
            alert(dataString);
        }          
    });     
});

在 PHP 中:

$dataString = $_POST['data_to_pass'];
if($dataString) {
    echo "got IT!";
}
于 2012-05-17T21:24:04.473 回答
0

您的代码段中有一个 SyntaxError。我不确定这是否也在你的真实代码中。

请务必json_encode在您的 PHP 文件和jQuery.ajaxdataType: 'json'中使用。并且始终使用回调。如果出现故障,您不希望您的应用程序无限期冻结。error

像这样的东西:

$.ajax({
    url: 'api.php',        
    data: {
        action: 'greet',
        foo: 'bar',
        baz: 'quux'
    }, 
    type: 'POST',  
    dataType: 'json',
}).then(function (response) {
    console.log(response); // DEBUG
    if (response.error) {
        alert('Greet Error: ' + response.error);
    } else {
        alert(response.greet);
    }
}).catch(function (jqXHR) {
    console.log('AJAX Error', jqXHR); // DEBUG
    alert('AJAX Error: Request failed');
});

PHP:

<?php
$input = $_POST;
$response = array();

if (!isset($input['action'])) {
    $response['error'] = 'Action parameter required';
} else {
    if ($input['action'] === 'greet') {
        if (!isset($input['foo']) || !isset($input['bar'])) {
            $response['error'] = 'Invalid greet request';
        } else {
            $response['greet'] = 'Welcome home, David!';
        }
    } else {
        $response['error'] = 'Unknown action';
    }
}

header('Content-Type: application/json; charset=utf8');
echo json_encode($response);
于 2012-05-17T21:33:45.080 回答
0

我想分享以下内容,我想我已经解决了这个问题。

除了我确实犯了一个错误之外,从表单中检索值有点错误。所以第一个警报给了我name=[Object name],现在那很愚蠢。

就我而言,没有得到结果的问题似乎是 jquery 本身的问题。我不知道这是否是其他人遇到的同样问题。我用 1.4 替换了 jquery 1.7 的包含文件。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 

比使用以下代码(仅来自 $.ajax)。

var dataString = $("#contactForm").serialize();
$.ajax({
    type: 'POST',
    url: './php/mail.php',
    data: dataString,
    success: function(msg){
        if (msg === 'sent'){
            $('#success').text('Message sent!');
        } else{
            $('#success').text('Mail Error. Please Try Again.!');   
        }
    }
});

现在我让它工作了——并且会根据我的需要对其进行一些调整!

谢谢大家的帮助!

于 2012-05-18T20:39:54.863 回答
-1

试试这个:

$.ajax({
    type : 'POST',
    url : 'post.php',           
    data: dataString,
    success:function (data) {
        if (data===undefined) { alert("darnit!!!!");}    
            //$("#response").append(data);
            alert(data);
        }          
    });     
});

此外,我会考虑在您的 php 文件中的数组上使用 json_encode 并返回一个 json 对象。

于 2012-05-17T21:20:37.523 回答