【问题标题】:Ajax is not working in server but works fine in local hostAjax 在服务器中不工作,但在本地主机上工作正常
【发布时间】:2017-04-06 15:35:40
【问题描述】:

Ajax 调用无法在整个站点中运行。但在localhost 中工作正常。我无法调试此问题。

我整个网站都用过ajax。我完全受够了。

任何人请帮我修复这个错误!

我的一个示例 Ajax 代码:

function advanced_addTopic(cid) {    
  $.ajax({
        url: "assets/php/checkSubtopicStatus.php", // Url to which the request is send
        type: "POST",             // Type of request to be send, called as method
        data: {'cid':cid}, // Data sent to server, a set of key/value pairs (i.e. form fields 
        success: function(data)   // A function to be called if request succeeds
        {
              if(data==="True"){
                $("#subtopicDiv").html($("#subtopicDiv"+cid).html());
                $("#advanced_testid").val(cid);

                var hiddenCourse=$("#createTest").attr('class');
                $("#courseHidden").val(hiddenCourse);
                $("#advanced_addquestionModal").modal('show');
                $("#subtopic").focus();
                $("#question").focus();
                var tempVal=$("#getID").text(); 
                $("#advanced_courseHidden").val(cid);
                } else {
                  alert("Create subtopics to insert questions!");
                }

        }
 });

我的 PHP 代码在这里:

<?php 
        class loginValidation {  

             function validate() 
             {
                ob_start();
                session_start();
                include "../../connection.php"; 
                $id=$_POST['cid'];

                $query = mysql_query("select * from advanced_subtopic where testid='$id'");
                if(mysql_num_rows($query)>0) {
                        echo "True";    
                 } 
                else {
                        echo "False";
                }
            }
        }
        $loginValidation=new loginValidation;
        $loginValidation->validate();?>

My Concosole Log

CONSOLE RESPONSE

【问题讨论】:

  • 检查控制台是否有错误并让我们也知道错误
  • 1. 不要使用已弃用的mysql_*-functions。它们自 PHP 5.5 起已弃用,并在 PHP 7 中完全删除。改用 MySQLi 或 PDO。 2. 您对SQL Injections 持开放态度,应该真正使用Prepared Statements 而不是连接您的查询,如果您使用上述MySQLi 或PDO,则可以使用。特别是因为您甚至根本没有转义用户输入。
  • 它返回 -False @MayankPandeyz
  • 试试 jQuery 是否正常工作..
  • 请求是从浏览器发出的吗?您在本地主机和服务器上是否有相同的网络服务器和设置?请求是否在服务器上的访问日志中?您是否在服务器的错误日志中得到任何信息?你在服务器上有相同的 php 版本和包吗?也许您有 PHP7,其中删除了“mysql_”函数?

标签: php ajax


【解决方案1】:

代替

(data==="True")

我们应该像这样编码

($.trim(data)=="True")

应修剪数据以避免不必要的空间。

问题解决了。

【讨论】:

    猜你喜欢
    • 2015-08-28
    • 2018-03-07
    • 2023-03-06
    • 2021-11-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多