Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 403发出ajax Post请求时禁止的错误_Javascript_Php_Ajax_Xmlhttprequest - Fatal编程技术网

Javascript 403发出ajax Post请求时禁止的错误

Javascript 403发出ajax Post请求时禁止的错误,javascript,php,ajax,xmlhttprequest,Javascript,Php,Ajax,Xmlhttprequest,我的代码在本地主机(wamp服务器)上运行良好,但在将其移动到共享主机时,出现错误403(禁止)。 我先试了一下: $.post('login.php?login', { user_email: user_email, user_password: user_password, user_remember: user_remember }, function(data) { // Some code here } 然后我试了一下: var http = new

我的代码在本地主机(wamp服务器)上运行良好,但在将其移动到共享主机时,出现错误403(禁止)。 我先试了一下:

    $.post('login.php?login', { user_email: user_email, user_password: user_password, user_remember: user_remember }, function(data)
    {
     // Some code here
    }
然后我试了一下:

var http = new XMLHttpRequest();
var url = "login.php?login";
var params = "user_email="+user_email+"&user_password="+user_password+"&user_remember="+user_remember;
http.open("POST", url, true);

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        // Some code here
    }
}
http.send(params);
但我仍然得到这个错误:

403号岗位(禁止)


知道怎么回事吗?

这里有一些可能性

  • 共享主机上的403通常意味着您试图联系的文件存在权限问题。基本上,web服务器会说,“不,我不允许您访问或运行login.php。”您可能需要再次检查该文件的所有者和权限,以防该文件被错误上传

  • 在某些情况下,您也很可能有一个.htaccess文件被设置为以403错误代码响应,因此如果您有其中一个错误代码,请查找有关允许/拒绝/授予的任何内容,然后尝试注释这些行(暂时,只是为了看看是否是原因)然后再次尝试访问login.php

  • 下一种可能性是,您的login.php本身被编写为在某些情况下使用403错误代码进行响应。例如,如果您没有向它发送适当的数据,或者由于某种原因它无法验证您的登录,那么它可能会使用403 HTTP状态代码进行响应。在这种情况下,我会再次检查以确保发送到login.php的数据有效,并且login.php在共享服务器上设置正确(例如,检查数据库访问等)

  • 最后一种可能性是,您的原始文件与login.php不在同一个域中。换言之,您打开并对进行AJAX调用。这称为跨域调用,也可能导致403,因为出于安全原因禁止跨域调用,除非您采取步骤启用它们(通常必须控制双方才能采取这些步骤)。因此,如果这就是执行AJAX调用的方式,请尝试将原始文件(page.html)复制到login.php所在的domainB.com,然后从那里开始尝试


  • 这里有一些可能性

  • 共享主机上的403通常意味着您试图联系的文件存在权限问题。基本上,web服务器会说,“不,我不允许您访问或运行login.php。”您可能需要再次检查该文件的所有者和权限,以防该文件被错误上传

  • 在某些情况下,您也很可能有一个.htaccess文件被设置为以403错误代码响应,因此如果您有其中一个错误代码,请查找有关允许/拒绝/授予的任何内容,然后尝试注释这些行(暂时,只是为了看看是否是原因)然后再次尝试访问login.php

  • 下一种可能性是,您的login.php本身被编写为在某些情况下使用403错误代码进行响应。例如,如果您没有向它发送适当的数据,或者由于某种原因它无法验证您的登录,那么它可能会使用403 HTTP状态代码进行响应。在这种情况下,我会再次检查以确保发送到login.php的数据有效,并且login.php在共享服务器上设置正确(例如,检查数据库访问等)

  • 最后一种可能性是,您的原始文件与login.php不在同一个域中。换言之,您打开并对进行AJAX调用。这称为跨域调用,也可能导致403,因为出于安全原因禁止跨域调用,除非您采取步骤启用它们(通常必须控制双方才能采取这些步骤)。因此,如果这就是执行AJAX调用的方式,请尝试将原始文件(page.html)复制到login.php所在的domainB.com,然后从那里开始尝试


  • 您列表中的附加项。通过发送和http请求,我遇到了这个问题,但它总是返回403。然后我注意到他们有一个csrf令牌,我正试图复制它。为了解决这个问题,我在使用js.an插件将数据输入到您的列表后提交了表单。通过发送和http请求,我遇到了这个问题,但它总是返回403。然后我注意到他们有一个csrf令牌,我正试图复制它。为了解决这个问题,我在使用js输入数据后提交了表单。