Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-AJAX-POST,不是那么简单_Javascript_Jquery_Ajax - Fatal编程技术网

JavaScript-AJAX-POST,不是那么简单

JavaScript-AJAX-POST,不是那么简单,javascript,jquery,ajax,Javascript,Jquery,Ajax,我将分享我的半写半伪代码,希望有人能帮助我完成这些工作 我有一个名为results的div。当在resultsdiv中单击时,我需要发送一个POST请求来更新数据库中的表行 $(function() { $("body").click(function(e) { if (e.target.id == "results" || $(e.target).parents("#results").size()) { // add timer clicks

我将分享我的半写半伪代码,希望有人能帮助我完成这些工作

我有一个名为
results
div
。当在
results
div中单击时,我需要发送一个POST请求来更新数据库中的表行

$(function() {
    $("body").click(function(e) {
        if (e.target.id == "results" || $(e.target).parents("#results").size()) { 
           // add timer clicks must be at least 15 seconds apart or do not POST
          // a click was made in the results div, record click to record in db
          ajax_post();
        } 
    });
})
这段代码似乎可以工作,但是,我收到一个警告警报*event.returnValue已弃用。请改用标准的event.preventDefault()*

接下来,我的
ajax\u post
功能似乎无法正常工作

function ajax_post(){
    var x = new XMLHttpRequest();
    var url = "tq/--record-events.inc.php";
    var session = //get session information from cookie
    var data = "ClickCount="+1+"&SessionId="+session;
    x.open("POST", url, true);
    x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    x.send(data);
}

一旦我把vars发布到我的php脚本中,我就可以从那里开始了,只是有点麻烦。我感谢你的帮助。多谢各位

试试这样的东西。你可以阅读更多关于


出于好奇,为什么不使用
jQuery.ajax
?您如何确切地确定请求不起作用?会发生什么呢?有没有不使用jquery的具体原因?我是开发新手。PHP>JS>jQuery。我觉得jQuery有点令人困惑。当我运行代码时,不会发生任何事情。我把它改在这里了。在我这边,我将它设置为
return\u data=x.responseText
,我仍然建议您坚持使用jquery。在这一点上,使用js比使用jquery更困难。特别是当涉及到跨浏览器兼容性、整洁性和你必须编写的代码长度时。是的,我现在正在阅读。谢谢。“试试这个
”帖子很少是好答案,因为它们不能解释任何事情。关于您的具体答案,通过未定义的
x
变量再次调用Ajax看起来是错误的。也许你只是忘了删除那个部分?诚然,我是新来的,所以,谢谢你的批评。我把他的代码放在这里只是为了给他一个提示,但我明白你的观点,如果它实际上不起作用,那么就不要显示它。至于你对“试试这个代码”的评论,有什么更好的方法来回答?就指着那些文件?还是仅仅发布通用代码?或者别的什么?一般来说,我会说理想的答案应该包括解释为什么现有的“解决方案”不能按预期/预期工作。当然,这只适用于OP在他们的电脑上实际尝试了一些东西的情况。然后我将提出一个解决方案,并解释其优缺点。话虽如此,这是我的个人观点,并不总是适用的。我只是觉得那些能解释一些事情的帖子对OP和其他读过这篇帖子的人更有用。关于这个特定的问题,我发现很难给出答案,因为我们唯一的信息是Ajax调用没有“工作”。我们不知道是否发出了请求,但在服务器端失败了,或者只是因为响应没有做任何事情,所以看起来它“不起作用”。当然,你的代码可能会解决这个问题,但我们仍然不知道问题到底是什么。不客气!实际上,我不想听起来那么挑剔,这是对未来的一个建议:)快乐编码!
$(function() {
    $("#results").click(function(e) {
        // add timer clicks must be at least 15 seconds apart or do not POST
        // a click was made in the results div, record click to record in db


        // Assign handlers immediately after making the request,
        // and remember the jqXHR object for this request
        var jqxhr = $.ajax( "example.php" )
            url: 'tq/--record-events.inc.php',
            contentType: "application/json",
            dataType: "json",
            data: yourData,
            type: "POST"
        }).done(function(data, textStatus, jqXHR) {
            //Do your thing here.
        }).fail(function(jqXHR, textStatus, errorThrown) {
            alert( "error" );
        }).always(function() {
            alert( "complete" );
        });
    });
})