如果通过JavaScript访问文件,则禁止访问(403)

时间:2013-11-28 07:02:39

标签: javascript php apache

在索引页面上,我创建了一个表单(不是HTML,而是通过JavaScript)并将其包含在一个在某些条件后调用的函数中。这是JavaScript代码:

    function next_page()
{
var card="Some values ab,xy";
var form = document.createElement("form");
    input = document.createElement("input");

form.action = "preview_card.php";
form.method = "post"

input.name = "card_data";
input.value = card;
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}

但问题是,当函数被调用时,“Forbidden”消息显示为:

  

禁止

     

您无权访问此服务器上的/preview_card.php。

     

此外,尝试时遇到404 Not Found错误   使用ErrorDocument来处理请求。

但如果我直接转到preview_card.php,则会显示该页面。

为什么在JS文件调用文件时禁止访问,但如果我直接将链接输入浏览器,则会显示。

2 个答案:

答案 0 :(得分:0)

也许preview_card.php接受当前没有POST请求。在常规情况下,如果您在地址栏中输入了网址,则您的浏览器会执行GET请求。尝试将form.method更改为"get"

答案 1 :(得分:0)

好像您的服务器拒绝了ajax(X-Requested-With)请求。尝试在服务器端设置 Access-Control-Allow-Headers:X-Requested-With,Content-Type 标头。

顺便说一句 - 你为什么不使用jQuery?

$.post(
    '/preview_card.php',
    {
        card_data: "Some values ab, xy"
    },
    function (data) {
        console.log(data);
        /* some actions with response here */
    }
);