的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)
后我没有收到任何提醒 - 页面内没有回应!
我做错了什么?
答案 0 :(得分: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);
}
});
});
答案 1 :(得分: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!";
}
答案 2 :(得分:0)
您的代码段中有一个SyntaxError。我不确定这是否也在您的真实代码中。
请务必在PHP文件中使用json_encode
,在jQuery.ajax中使用dataType: 'json'
。并始终使用error
回调。如果出现问题,您不希望您的应用程序被无限期冻结。
这样的事情:
$.ajax({
url: 'api.php',
data: {
action: 'greet',
foo: 'bar',
baz: 'quux'
},
type: 'POST',
dataType: 'json',
success: function (response, textStatus, jqXHR) {
console.log(response); // DEBUG
if (response.error) {
alert('Greet Error: ' + response.error);
} else {
alert(response.greet);
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('AJAX Error', textStatus, errorThrown); // 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);
答案 3 :(得分: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.!');
}
}
});
现在我有了它的工作 - 并根据我的需要调整一下!
谢谢所有人的帮助!
答案 4 :(得分:-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对象。