使用jQuery和/或AJAX

时间:2016-06-14 15:13:15

标签: jquery html ajax

我已经/好几天已经完全混淆了,无法让我的表单提交到服务器。我尝试过互联网提供的所有指南,教程,示例和论坛建议,但仍无济于事。

我们可以将此表单发布到可变数量的不同服务器,这可以通过使用' id'的选择/选项下拉菜单完成。作为变量。我们使用一个按钮来提交表单并接收我们需要以XML格式查看的XML。需要将此XML响应定向到在不同框架集内的iframe中显示。下面是代码的一小部分。

<script type="text/JavaScript" src="jQuery-1.12.4.js">
    $("#Form51").submit(function (e) {
        var url = "https://website.com:1234"; 

        $.ajax({
            type: "POST",
            url: url,
            data: $("#Form51"), 
            success: function (data) {
                alert(data); 
            }
        });

    });

</script>
</head>
<body> 

<form method="POST" name="form51" target="formresponse" id="form51">

<button>Submit</button>


....data
..data
data
</form>
</body>

谢谢,如果有人可以帮我解决我的头痛:/

2 个答案:

答案 0 :(得分:0)

如果您要将数据提交到可变数量的服务器,每个服务器都有不同的网址,则可能会遇到Cross-Origin Reference共享(CORS)的问题。您可能需要对Web服务器进行一些更改,以向浏览器指示这些其他域在提交并显示来自其他域的响应之前是有效且受信任的。

您需要调整Web服务器以插入一些额外的HTTP标头。例如:

Access-Control-Allow-Origin: http://foo.com
Access-Control-Allow-Methods: PUT, DELETE

apache上,这是通过添加到其中一个配置文件来完成的:

Header set Access-Control-Allow-Origin "http://foo.com"

答案 1 :(得分:0)

我相信表单试图在不运行js代码的情况下提交。它违反了提交操作,这不是你想要的。尝试在事件处理程序之后添加e.preventDefault():

<script type="text/JavaScript" src="jQuery-1.12.4.js">
$("#Form51").submit(function (e) {
    e.preventDefault(); //<-----------------------------------try this here
    var url = "https://website.com:1234"; 

    $.ajax({
        type: "POST",
        url: url,
        data: $("#Form51"), 
        success: function (data) {
            alert(data); 
        }
    });

});

</script>
</head>
<body> 

<form method="POST" name="form51" target="formresponse" id="form51">

<button>Submit</button>


....data
...data
data
</form>
</body>