当前位置: 首页 > 面试题库 >

CakePHP项目中的Jquery Ajax请求返回禁止(403)

申奇希
2023-03-14
问题内容

编辑2

我仍然需要帮助,因为错误仍然没有得到解决。下面,我添加了指向.ajaxError()抛出的屏幕截图的链接:

http://i.imgur.com/RkcgNtG.jpg

另一个想法是服务器设置。suphp或mpm_itk模块是否有可能是导致此错误的原因?

编辑

我已经弄明白了。我的Ajax-
Call应该从输入和文本区域更新一些数据。我进行了更多测试,发现403仅在我的文本区域的值或输入的值具有多个空格的情况下才会出现。因此“ that-is-
a-test”和“ thatisatest”可以正常工作,但“即是文字”,则返回403。

我还想补充一点,Ajax-Call是用get方法完成的。

原版的

我在CakePHP项目上工作时遇到问题。首先,我必须说我是CakePHP的新手,并且我从事的项目最初不是我开发的。

我已经在本地主机(带有xampp的Windows 8)上设置了这个项目,并且一切正常。

在下一步中,我编辑了Bootstrap配置文件,更正了数据库信息,并将所有文件上传到我的服务器。

现在,除了jQuery AjaxCalls之外,其他所有内容仍然有效。跟踪此错误的根源,我发现服务器返回了403状态代码。

现在,我搜索了可能的原因。我发现的第一个方面是将安全级别从高设置为中。但是由于我的2.x项目不再具有此设置,因此我需要另一个解决方案。

下一步是检查服务器设置。但是我的本地版本和发生错误的服务器的phpinfo似乎几乎相同。服务器上的PHP版本5.3和FastCGi的使用是不同的。但是由于cakePHP不需要超过5.2,这可能不是原因。

所以现在我不知道要搜索什么。我认为它必须是一种设置,因为它在我的本地主机上运行良好,在另一台服务器上运行良好,但在新服务器上运行失败。有什么我可以检查的想法吗?由于我不是服务器技术专家,因此,如果您回答的尽可能详细,那将是很好的。

谢谢和问候


问题答案:

我现在已经更改了如下的jQuery Ajax-Call

    $.ajax({
        url: '/metas/saveMetas',
        data: {
            "model": model,
            "f_key": f_key,
            "pagetitle": pagetitle,
            "keywords": keywords,
            "description": description,
            "niceurl": niceurl
        },
        dataType: 'json',
        complete: function(){
            return false;
        },
        success: function(result) {
            if(typeof result =='object') {
                $('#modal-spinner-seo-update').hide('slow');
                jQuery.each(result, function(field, message) {
                    $('#seo-'+field).next('div.error-message').html(message).fadeIn('fast');
                });
            } else {
                $('#modal-spinner-seo-update').hide('slow', function() {
                    $("#seo-widget-message-success").fadeIn('slow').delay(2000).fadeOut('slow');
                });
            }
            return false;
        }
    });

变成一个简单的JavaScript xmlHttpRequest,如下所示

    xhr = new XMLHttpRequest();
    xhr.onreadystatechange=function()
    {
        if (xhr.readyState==4 && xhr.status==200)
        {
            console.log(xhr.responseText);
            if(typeof xhr.responseText =='object') {
                $('#modal-spinner-seo-update').hide('slow');
                jQuery.each(result, function(field, message) {
                    $('#seo-'+field).next('div.error-message').html(message).fadeIn('fast');
                });
            } else {
                $('#modal-spinner-seo-update').hide('slow', function() {
                    $("#seo-widget-message-success").fadeIn('slow').delay(2000).fadeOut('slow');
                });
            }
            return false;
        }
    };
    xhr.open('GET','/metas/saveMetas?model='+model+'&f_key='+f_key+'&pagetitle="+pagetitle+"&keywords='+keywords+'&description='+description+'&niceurl='+niceurl, true );
    xhr.send();

现在一切似乎都正常。但是我仍然不明白为什么。谁能解释我做错了什么?



 类似资料:
  • 对localhost的Ajax请求返回403错误。然而,当我更改controller requestMethod以获取并在浏览器上打开请求“url”时,它会显示从服务器返回的json数据。我希望使用这些数据填充一个下拉列表。请帮帮我。我正在使用spring security 4.0和spring MVC框架。CSRF未禁用。此外,该url在Spring得到保护。 我在这里查看了相关问题,但没有找到

  • 我阅读了很多关于这个问题的线程和解决方案(包括这个SO解决方案),但在发送预飞行请求时仍然有403错误。 我使用的是Spring Data Rest,只要没有发送选项,我就可以很好地处理我的存储库。我还没有使用Spring Security,但我计划很快配置它。以下是我当前的配置:

  • 问题内容: 我正在尝试制作Sitecraper。我是在本地计算机上制作的,在那儿工作得很好。当我在服务器上执行相同操作时,它显示403禁止错误。我正在使用PHP简单HTML DOM解析器 。我在服务器上收到的错误是这样的: 警告:file_get_contents(http://example.com/viewProperty.html?id=7715888)[function.file- get

  • 我使用http://localhost:8080/auth/realms/{realm_name}/protocol/openid-connect/token endpoint创建令牌。 grant_type=client_credentials 客户端-id:------------- 客户端-secret:78296D38-CC82-4010-A817-65C283484E51 现在我想获得r

  • 我正在调用CloudBlobContainer。CreateIfNotExist(请参阅下面的FindOrCreatePrivate ateBlobContainer方法)间接来自Web API服务,但它返回以下403禁止错误消息: 以下是生成错误的代码: 我需要一些帮助来解决此错误的原因。我尝试了以下方法: 已检查要创建的容器的名称是否有效,并且在这种特定情况下,仅由小写字母组成(无特殊或大写字

  • 第一次投递到stackoverflow。 我只是试图使用jQuery从json url获取数据。第一个问题是跨源请求块,即使库应该停止这个问题,像ajax跨源js(抱歉不提供这个链接,我太新了,在这里有超过2个链接),我仍然没有运气,一样交叉原点错误。 所以我搬到了JSONP。 (我也尝试过JSONP请求的AJAX语法) 现在我可以在网络选项卡中看到数据正在返回,但状态是403禁止。chrome网