繁体   English   中英

jQuery POST Ajax请求

[英]jQuery POST Ajax request

我正尝试将数据从服务器A发布,例如:www.a.com到服务器B,www.b.com,然后从服务器B获取响应

我这样做,此脚本在服务器A上运行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>    
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Naamloos document</title>
</head>

<body>

<form id="Form" onsubmit="validate();" method="post">
Email Address: <input type="text" id="email" name="email">
Password: <input type="text" id="password" name="password">
<input type="submit">
 </form>

<script>
function validate()
{
var e = $('email').value;
var p = $('password').value; //jQuery is easier to type
// the same as
// var p = document.getElementById('password').value;
var req = new Request({
    url: 'http://www.B.com/validate.php?',
    method: 'post',
    data: {'email' : e, 'password' : p},
    onComplete: function(response)
    {
        if (response == "Valid" ) 
        {
            alert("succes");
        }
        else
        {
            alert("blur");
        }
    }
}).send();
}
</script>

</body>
</html>

但是现在,在单击“提交”按钮后,唯一发生的事情是清除了字段,仅此而已。

Validate.php看起来像这样:

<?php echo "Valid"; ?>

您正在提交表单,因此JavaScript永远没有机会做任何重要的事情。 由于您尚未指定action ,它会提交到当前URL并重新加载页面。

  1. 停止使用内部事件属性。
  2. 使用JS事件绑定(因为您已经在使用jQuery,请继续使用它)
  3. 捕获事件对象并阻止Submit事件的默认行为

这样:

<form id="Form" method="post">

$('#Form').on('submit', validate);

function validate (event) {
    event.preventDefault();
    var e = $('#email').val();

您似乎也没有在任何地方定义“ Request 您可能应该切换到jQuery ajax


还要注意,服务器B将必须授予服务器A使用CORS对其进行Ajax请求的权限。

尝试取代这个

var e = $('email').value;
var p = $('password').value;

有了这个

var e = $('#email').val();
var p = $('#password').val();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM