点击功能内的ajax请求干扰执行

Posted

技术标签:

【中文标题】点击功能内的ajax请求干扰执行【英文标题】:ajax request inside click function disturb execution 【发布时间】:2016-06-07 04:43:48 【问题描述】:

您好,我在点击/点击事件中遇到了一个 ajax 请求问题,该事件在 android webview 上不起作用。如果我在设备上使用 chrome 运行我的 webapp 链接,并且 pc 一切正常。我在删除 ajax 函数后尝试了该函数,然后重定向在我的应用程序中起作用。其他 ajax 请求在应用程序中工作正常。它看起来像里面的东西或者 ajax 函数对此负责。我使用 jquery mobile 1.4.5

我的活动中的 webview 设置:

CookieManager.getInstance().setAcceptCookie(true);         
    mWebView = (WebView) findViewById(R.id.webview);
    // Brower niceties -- pinch / zoom, follow links in place
    mWebView.getSettings().setjavascriptCanOpenWindowsAutomatically(true);
    mWebView.setWebViewClient(new GeoWebViewClient());
    // Below required for geolocation
    mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
    mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setGeolocationEnabled(true);
    mWebView.setWebChromeClient(new GeoWebChromeClient());

sn-p 我的页面

<ul data-role="listview" class="ul" id="uItem1" data-inset="true">
    <?php foreach ($result as $key => $row): ?>
    <li data-icon="false" class="listitem<?php echo $row['id']; ?>">
        <a type="button" id="<?php echo $row['id']; ?>">
            <h2>test</h2>
        </a>
    </li>
    <script>
        $(".listitem<?php echo $row['id']; ?>").on('tap', function() 
            var chatid = <?php echo $row['id']; ?>;

            $.ajax(
                url: 'read.php',
                data: 
                    chatid
                ,
                type: 'POST',
                success: function(output) 
                    alert(output);
                
            );

            window.location.href = 'chatview.php';

        );
    </script>
    <?php endforeach; ?>
</ul>

【问题讨论】:

【参考方案1】:
data:  chatid 

格式不正确应该像

data:  chatid: 1 

【讨论】:

这并没有什么不同,伙计。 :( 哦,对不起,我在测试时犯了一个错误。现在点击事件起作用了。谢谢!!没有注意到这可能是造成这种情况的原因。

以上是关于点击功能内的ajax请求干扰执行的主要内容,如果未能解决你的问题,请参考以下文章

利用闭包实现多次ajax请求只执行最后一次

“如何在功能后修复'Ajax请求执行get而不是patch'错误”

来自 for 循环内的 AJAX 链中最后一个 AJAX 请求的返回值

取消对象内的 ajax 请求

ajax多次请求,只执行最后一次的方法

ajax小技巧,防止多次点击发送多个请求