AJAX无法加载资源:服务器响应状态为403(禁止)

时间:2017-05-22 22:47:15

标签: javascript php jquery ajax

我尝试了一切可用的在线但我仍然在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 PART     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);

请将您的最佳建议作为解决方案。

3 个答案:

答案 0 :(得分:1)

确保在mysql数据库上启用了远程访问。

How to allow remote connection to mysql

答案 1 :(得分:0)

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

cache: false,

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

答案 2 :(得分:0)

我不认为这与客户端有关,请检查您的服务器并确保您的Web服务器(基于CentOS / RH / Fedora的httpd或基于Ubuntu / Debian的发行版上的www-data)有权使用访问应用程序文件夹,您可以做的一件事就是进入应用程序文件夹并运行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访问的所有者和组的权限,并且每个人都只具有读取权限。