【问题标题】:AJAX Script Crashes browserAJAX 脚本崩溃浏览器
【发布时间】:2012-06-07 05:08:46
【问题描述】:

我正在尝试像这样使用 AJAX 提交用户注册信息:

<script>

$("#submit_btn").click(function() {
event.preventDefault();
var supplied_username = $('#desired_username').val();
var password = $('#password').val();
var email_address = $('#email_address').val();



$.post("register", { desired_username: desired_username, password: password, email_address: email_address } ,
function(data){
    $('body').append(data);
});
});
</script>

返回数据只是一串文本(即成功!或注册问题......)。我认为脚本必须以某种方式无限循环,但我不确定在哪里或为什么。当我在没有 AJAX 的情况下将正常的 POST 数据传递给后端时,后端工作得很好。这就是为什么我认为这一定是客户端的问题。有什么想法可以在这里发生吗?

【问题讨论】:

  • 您确定网址正确吗?您正在向[current_url]/register 发帖。你能看到在你的 js 控制台上触发的请求吗?你能看到回复吗?

标签: php ajax forms post


【解决方案1】:

我认为你遗漏了一些东西。我认为下面的代码就是您要查找的代码

<script>

$("#submit_btn").click(function(event) {
     event.preventDefault();
     var supplied_username = $('#desired_username').val();
     var password = $('#password').val();
     var email_address = $('#email_address').val();



    $.post("register", { desired_username: supplied_username, password: password, email_address: email_address } , function(data){
           $('body').append(data);
    });
});
</script>

【讨论】:

  • 在这种情况下,我认为window.event 无论如何都可以使用 - 请参阅jsfiddle.net/K2JTR
  • 我不相信它会。我相信你需要在回调时包含这个。
  • 丹,我也是这么想的。但是(a)为什么我的 jsfiddle 工作(它记录事件);以及(b)为什么表格没有正常提交?
  • @bfavaretto - 丢掉 jsfiddle 并按照文档说明的方式进行操作。我今天查看了 jsfiddle,它确实使用了回调,但仅在需要时使用:event.preventDefault(他们使用了“e.preventDefault)。
【解决方案2】:

将其附加在适当的文本标签(&lt;p&gt; 或其他任何内容)和document 中,而不是直接附加在body 中不是更好吗?

【讨论】:

  • 当然,但是您认为这会影响崩溃问题吗?
  • +1 .append() 期望数据为 HTML,并尝试将其解析为 HTML。它需要包装在某些东西中(从服务器或接收后)。
【解决方案3】:

我曾经尝试在客户端运行 AJAX 没有成功,然后在服务器端尝试了相同的代码但成功。可能是这样吗?

另外,如果我没看错,你传递了错误的变量。您创建一个supplied_username 并传递一个desired_username。这可能不是问题吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多