为什么我的jquery ajax无法在我的页面和页面上工作也令人耳目一新

时间:2013-09-27 09:39:57

标签: javascript jquery ajax

我是jQuery / Ajax领域的新手,我的小测试功能不起作用。我的页面也很新鲜,任何人帮助我

<script type="text/javascript" >
$(document).ready(function() {
    $("#ser_itm").change(function() {
        var id=$(this).val();
        var dataString = 'id='+ id;
        alert(dataString);
        $.ajax({
            type: "POST",
            url: "bar_pull.php",
            data: dataString,
            cache: false,
            success: function(html) {
                $("#tbl").html(html);
            } 
        });
    });
});

4 个答案:

答案 0 :(得分:3)

传递函数,而不是函数调用的结果:

$('.linkDetails').on('click', getDetailsFromServer);

将相同的内容应用于您的AJAX成功回调:

success: postToPage

此外,在将getDetailsFromServer()函数绑定到事件之前,需要先定义它。在.on('click', ...)来电之前移动功能声明。

答案 1 :(得分:2)

扫管笏Arun P Johny说是对的!但是你的代码有另一个问题

$('.linkDetails').on('click', getDetailsFromServer);

尝试上面

答案 2 :(得分:2)

因此,我将尝试更清楚地解释这些观点:


您无法访问C:\Users\yah\Desktop\text.txt。这是server side path,您的javascript在client side上运行。因此,这需要是您可以在浏览器中浏览的路径,例如/pathinURL/text.txt。如何执行此操作取决于您的托管技术等。


您的回电也是错误的,

$('.linkDetails').on('click', getDetailsFromServer());

&安培;

success: postToPage()

这些将在命中时执行该函数(实际上它实际上绑定了函数结果),而不是在事件发生时。要完成这些工作,您需要删除大括号:

$('.linkDetails').on('click', getDetailsFromServer);

&安培;

success: postToPage

然后将实际函数作为函数指针挂钩,因此实际函数将在您希望它们时触发。

所以你的最终代码如下:

$('.linkDetails').on('click', getDetailsFromServer);

function getDetailsFromServer() {

   $.ajax({
       type: 'GET',
       url: '/someURL/text.txt',
       success: postToPage
   });
}

function postToPage(data) {

   $('.textDetails').text(data);
   console.log(data);
}

答案 3 :(得分:0)

浏览器实施的same origin policy会阻止本地文件系统网址...如果网页和文件位于相同的文件夹中,则可能会有效。

请参阅SOP for file URI了解FF