繁体   English   中英

Javascript中的Ajax POST无法正常工作

[英]Ajax POST in Javascript is not working

我搜索了问题,但找不到任何解决方案。 我想这真的很简单,我错过了一些非常容易的事情……但是我被困住了。

我有一个html页面,其中包含php生成的链接列表,像这样:

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

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

javascript:post_filename('带空格.txt的我的文件');

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

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

但是点击它,什么也没做! 没有错误,什么也没有发生。

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

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

您的AJAX调用无效, data应为字符串,数组或对象。 对象可能是您从一开始就追求的东西

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

尝试使数据成为对象:

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

我尝试了您的代码,但是我对其进行了一些修改(我只是注意到您在type之后输入分号 ,我认为应该是逗号,这是您拥有意外令牌的原因),我的代码可以使用以下代码:

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

在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);
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM