如何将ajax发布到重写的URL?

时间:2013-10-29 22:47:14

标签: javascript php ajax

目前我正在通过帖子向PHP文件提交表单,唯一的问题是我无法提交到该php文件,因为ajax出了问题。我的问题是,如果后端重写了网址,我可以提交到其他网址吗?

CURRENT PAGE网址:   - 实际:http://site.com/topic.php?id=1   - 重写:http://site.com/topic/1

通缉页面网址:   - 实际:http://site.com/comment.php

如何发送到comment.php文件?我认为javascript假设我正在尝试做site.com/topic/comment.php

HTML:

            <form id="comment_on_topic" onsubmit="return sendComment();">
            <textarea id="topicreply" name="topicreply">Initial value.</textarea>
            <input type="submit" name="submit" value="submit" />
        </form>

使用Javascript:

function sendComment(){
        var $form = $('#comment_on_topic');
        var $inputs = $form.find("input, select, button, textarea");
        var serializedData = $form.serialize();
        $inputs.prop("disabled", true);
        /* GET FORM INPUTS & SERIALIZE */

        var http = new XMLHttpRequest();
        http.open("POST", '/comment.php');
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.send(serializedData);
        /* AJAX REQUEST TO POST TO FILE */

        return false;
    }

PHP://根本没有被执行..(在comment.php中)

    <?php if($_SERVER['REQUEST_METHOD'] == "POST") : ?>
<?php
    require_once 'protected/connect.inc.php';
    require_once 'protected/functions.inc.php';


    $comment = sanitize($_POST['topicreply']);

    sendComment( 1, 1, "Topic Reply", $comment );
?>
<?php endif; ?>

是的,正在执行javascript。序列化数据看起来很好(“id = value&amp; anotherid = value”)

2 个答案:

答案 0 :(得分:0)

要了解会发生什么,我建议: - 查看Apache日志(访问和错误)以查看您的URL是否被重写以及如何重写它。 - 通过浏览器或Chrome插件Postman等工具运行您的查询(您可以看到PHP错误)。

这应该有助于发现问题!

答案 1 :(得分:0)

我已经弄明白了这个问题。我不得不使用http.open(“POST”,“../ comment.php'); javascript / html / css没有拾取实际的文件路径,如php。 (只是未来对其他人的帮助)