【问题标题】:AJAX Failed to load resource: the server responded with a status of 403 (Forbidden)AJAX 加载资源失败:服务器响应状态为 403(禁止)
【发布时间】:2017-05-23 14:11:16
【问题描述】:

我尝试了所有可用的在线方式,但 AJAX 请求仍然出错。也尝试了 XMLHttpRequest() 请求,但无法解决问题。

这是我的 Ajax 请求

$.ajax({
type: "POST",
url: "ajaxsubmit.php",
data: {
  content: post_data
},
cache: false,
success: function(result){
alert("The Data have been Entered.");
}

});

这是我的 ajaxsubmit.php

<?php
session_start();

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dataentry";

$content = $_POST['content'];

$tb_name = "pdf".$content[10];

$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "CREATE TABLE IF NOT EXISTS $tb_name (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
APNR TEXT, APDA TEXT, TMNM TEXT, TMTY TEXT,OWNN TEXT,OWNA TEXT,
OWNC TEXT,CORN TEXT,CLAS TEXT,DES TEXT, ENTRY_TYPE TEXT, LOGO_SRC TEXT
)";

if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}

$sql="insert into $tb_name (APNR, APDA, TMNM, TMTY,
OWNN,OWNA,OWNC,CORN,CLAS,DES,ENTRY_TYPE,LOGO_SRC) values ('$content
[0]', '$content[1]', '$content[2]','$content[3]','$content[4]','$content
[5]','$content[6]','$content[7]','$content[8]','$content[9]','$content
[11]','$content[12]')";

if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}

$conn->close();
?>

我试过XMLHttpRequest()这样,

JS 部分 var http = new XMLHttpRequest();

var url = "ajaxsubmit.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state
changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);

请给我你最好的建议作为解决方案。

【问题讨论】:

  • 在网络服务器的日志文件中你看到了什么?可能是文件权限问题?
  • 如何查看网络服务器中的日志文件?
  • 您使用的是什么网络服务器?阿帕奇? Nginx?还有吗?
  • Apache,实际上它在我的 LocalHost (WAMP) 上运行良好,我将它托管在我的网站上,导致那里出现问题。
  • www.alimuqaddas.com/dataentryv2 输入用户名:umar 密码:umar 向下滚动以查看表单条目,只需按完成即可。打开 Web 控制台,查看错误消息。

标签: javascript php jquery ajax


【解决方案1】:

确保您的 mysql 数据库启用了远程访问。

How to allow remote connection to mysql

【讨论】:

    【解决方案2】:

    在黑暗中拍摄,但尝试删除

    cache: false,
    

    它以前对我有用。不知道为什么。

    【讨论】:

    • 加载资源失败:服务器响应状态为 403 (Forbidden)
    • 还是一样的错误。
    【解决方案3】:

    我认为这与客户端无关,请检查您的服务器并确保您的 Web 服务器(基于 CentOS/RH/Fedora 上的 httpd 或基于 Ubuntu/Debian 的发行版上的 www-data)有权访问应用程序文件夹,您可以做的一件事是 cd 进入应用程序文件夹并运行 chmod 例如

    cd /path/to/app/dir && chmod 777 . -R 
    

    chmod 777 是一种不好的做法,因此仅用于调试这种情况!

    再次测试,如果可以,则说明文件访问权限有问题,您需要调整应用程序文件夹的所有者和组访问权限,例如在 CentOS 上

    chown myuser:httpd /app/dir -R
    

    myuser改成你自己的用户名,这应该会改变文件权限,接下来修复访问位

    cd /app/dir
    find . -type d -exec chmod -c 775 '{}' \;
    find . -type f -exec chmod -c 664 '{}' \;
    

    这将更改所有者和组对文件具有 R/W 访问权限的权限,而其他所有人将只有读取权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多