javascript - Ajax 成功函数未使用 require 指令调用

标签 javascript php jquery ajax require

我在使用 AJAX 时遇到了非常奇怪的问题。 这是带有 js 代码和 post 方法的文件片段,该方法通过 AJAX 将参数发送到 php 文件:

var params = $('#add').serializeArray();

$.post('code/bg/adding_c.php', params, function(ret) {
  //body of success function
}, 'json');

这是 php 代码片段(adding_c.php):

<?php
	require "functions.php";
	
	//irrelevant operations
	
	$return = array(
		'status' => $status,
		'msg' => $msg,
		'id' => $id
	);
	
	echo json_encode($return);
?>

当我用 require 指令注释或删除该行时,一切正常,但当它处于事件状态时,不会触发成功函数。

  1. JS post 方法发送正确的参数。
  2. Php 文件接收它,执行正确的操作并将正确的数据返回给 js 脚本(我可以在 FireBug 中看到它)。
  3. 成功函数不会被触发。

为什么与AJAX无关的指令会导致这个问题?

编辑。

函数.php:

<?php

$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'dbname';
$conn = new mysqli($host, $user, $pass, $db);


function querySQL($query)
{
	global $conn;
	$result = $conn->query($query);
	return $result;
}

function cleanSQL($conn, $string)
{
	return htmlentities(fixSQL($conn, $string), ENT_COMPAT, 'UTF-8');	
}

function fixSQL($conn, $string)
{
	if(get_magic_quotes_gpc())
		$string = stripslashes($string);
	
	return $conn->real_escape_string($string);	
}

function fPassword($pass)
{
	$salt1 = 'salt1';
	$salt2 = 'salt2';	
	$token = hash('ripemd128', "$salt1$pass$salt2");
	
	return $token;
}

?>

编辑2。

没有错误,当我将函数从functions.php粘贴到index.php时,一切正常。我现在不知道该怎么办。看来 require word 是一个问题。我无法将这些函数添加到我需要它们的每个文件中。

最佳答案

这可能是 functions.php 中的错误。

编辑:如果您尚未在 php.ini 文件中设置 display_errors = On,请在代码中使用以下行:

ini_set("display_errors", "1");
error_reporting(E_ALL);

另外,您确定这不是解析/语法错误吗?如果是这种情况,您需要做一些事情:

  1. 确保您使用的是检查语法的 IDE(例如 Netbeans)。

  2. 将文件分成两个,如下所示:

index.php

<?php
    ini_set("display_errors", "1");
    error_reporting(E_ALL);
    include 'error.php';

error.php

require "functions.php";

//irrelevant operations

$return = array(
    'status' => $status,
    'msg' => $msg,
    'id' => $id
);

echo json_encode($return);

在浏览器窗口中运行它,这应该会让您了解您正在处理的内容。

关于javascript - Ajax 成功函数未使用 require 指令调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38011621/

相关文章:

php:逆转 mysql_real_escape_string 对二进制文件的影响

php - 连接多个视频php ffmpeg

php - 如何从打开的连接确定 SQLite 文件名?

javascript - 使用 Jquery 更改 css 样式适用于 id,而不适用于类

javascript - 8 在 JavaScript 比较中不是 "8"

javascript - JavaScript 循环期间暂停

javascript - 使用 $.ajax 向服务器请求未返回成功 - PHP

javascript - jquery分页插件的使用方法

javascript - 如何确保代码在 window.location.href 之前运行

php,使用mysql_connect()连接数据库问题,如何解决?