Ajax与jquery神秘失败

时间:2012-03-28 12:01:43

标签: javascript jquery ajax

您好我正在使用jquery for ajax ..我在网上关注手册和示例但是我看不出我做错了什么。这是我的代码:

    function ShowSearchResults(search_value){
           var ajShowSearchResults = $.ajax({
                type: 'POST',
            url: '../ajquery.php',
            data: {opt : 'srch', val: search_value},
            dataType: "html"
        });

        ajShowSearchResults.done(function(data){
            alert(data);
        });

        ajShowSearchResults.fail(function(jqXHR, textStatus) {
            alert( "Request failed: " + textStatus);
        });

3 个答案:

答案 0 :(得分:0)

您可以将成功和错误函数放在ajax调用中,如下所示:

$.ajax(
{
    type:       'POST',
    url:        '../ajquery.php',
    data:       {opt : 'srch', val: search_value},
    dataType:   "html",
    success:    function(data) 
    {
        alert(data);
    },
    error:      function(jqXHR, textStatus)
    {
        alert( "Request failed: " + textStatus);
    }
});

我希望这有效,因为我没有测试它;)

答案 1 :(得分:0)

疯狂猜测:

    var ajShowSearchResults = $.ajax({
        type: 'POST',
        url: '../ajquery.php',
        data: {opt : 'srch', val: search_value},
        dataType: "html",
        success: searchSuccess,
        failure: searchFailure,
    });

    searchSuccess = function(data) {
        alert(data);
    };

    searchFailure = function(data) {
        alert( "Request failed: " + data);
    };

答案 2 :(得分:0)

我刚刚在我的localhost上测试了你的脚本。我将 ajquery.php 放在 www 目录中,并将 index.html 放在 www / test 因为根据您指定的ajax参数, ajquery.php 必须在目录层次结构中为一级。

www / ajquery.php中的代码:

<?php print_r($_POST); ?>

www / test / index.html:

中的代码
<script type="text/javascript">
    function ShowSearchResults(search_value){
           var ajShowSearchResults = $.ajax({
                type: 'POST',
            url: '../ajquery.php',
            data: {opt : 'srch', val: search_value},
            dataType: "html"
        });

        ajShowSearchResults.done(function(data){
            alert(data);
        });

        ajShowSearchResults.fail(function(jqXHR, textStatus) {
            alert( "Request failed: " + textStatus);
        });
        return false; // My addition
    } // This Bracket You missed in the question

</script>
<form onsubmit='return ShowSearchResults($("#y").val())'>
<input type="text" name="y" id="y"/>
<input type="submit"/>
</form>

这是输出。 Output

现在,您可以看到您发送的所有POST数据都可以在 ajquery.php 下找到。这证明你的脚本没有问题,除了最后一个括号,我认为你错误地遗漏了。但是,我仍然可以闻到你身边的下一行可能存在问题。

            url: '../ajquery.php',

ajquery.php 可能没有驻留在父目录中。如果 ajquery.php 位于同一目录中,您可以将../ajquery.php替换为ajquery.php,或者最重要的是,将绝对网址替换为 ajquery.php 喜欢http://yourdomain.com/ajquery.php

希望能解决你的问题。

...和平