我遇到了问题,我无法使用我的$ .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调用中。
有人知道我做错了什么吗?我很感激任何帮助。
很多你的帮助 克里斯
答案 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