Javascript中的Ajax POST不起作用

时间:2015-10-22 10:14:15

标签: javascript ajax post

我搜索了我的问题,但我找不到任何解决方案。 我觉得这很简单,我错过了一些非常简单的东西......但是我被困了。

我有一个带有php生成链接列表的html页面,如:

<?php    
     $val = "'"my file with spaces.txt"'";
     echo '<a href="javascript:post_filename('.$val.');">click me</a>';
?>

每次$ val都不同,具体取决于SQL查询。 并且文件名显示正确,因为我将鼠标悬停在链接上,我可以在浏览器的左下角阅读:

  

javascript:post_filename(&#39;我的文件包含spaces.txt&#39;);

点击此链接将调用此javascript函数:

<script type="text/javascript">
        function post_filename(val){
             $.ajax
            ({ 
                url: 'myurl.php',
                data: { filename: val },
                type: 'POST'
            });
        }
</script>

但点击它,什么都不做!没有错误,没有任何反应。

使用开发工具(Chrome上的F12),我发现它一切正常......只是mypage.php没有显示...是一个带有图形的页面,是网站的一部分!

我被困了......请帮助我! 非常感谢

3 个答案:

答案 0 :(得分:1)

您的AJAX调用无效,data应该是String,Array或Object。对象可能就是你从一开始就在这之后所做的事情

<script type="text/javascript">
        function post_filename(val){
             $.ajax
            ({ 
                url: 'myurl.php',
                data: {
                    filename: val
                },
                type: 'POST';
            });
        }
</script>

答案 1 :(得分:0)

尝试将数据作为对象:

<script type="text/javascript">
        function post_filename(val){
             $.ajax
            ({ 
                url: 'myurl.php',
                data: { filename: val },
                type: 'POST';
            });
        }
</script>

答案 2 :(得分:0)

我尝试了你的代码,但我做了一些修改工作(我只是注意到你在类型之后有一个分号,我相信应该是一个逗号,这就是为什么你有意想不到的令牌)我的代码使用这个:

<?php    
$val = "'hello.txt'";
echo '<a href="#" class="click" file="'.$val.'">click me</a>';
?>

on javascript

$('.click').click(function() {
    $.ajax
    ({ 
        url: 'myurl.php',
        data: { filename: $(this).attr('file') },
        type: 'POST'
    })
    .done(function (data) {
        //check the output from your url
        console.log(data);
    })
    .fail(function (jqXHR, textStatus) {
        console.log("Request failed: " + textStatus);
    });
});