通过GET将数组发送到带有jquery的Web服务

时间:2013-06-12 15:11:14

标签: jquery web-services

我有这样的表格:

<form action="#" method="post" id="cen" runat="server">
        <table>
            <thead>
                <tr>
                    <th>Contacto</th>
                    <th>Fecha</th>
                    <th>Hora</th>
                    <th >Mensaje</th>
                </tr>
            </thead>
            <tbody>
                <tr>                        
                    <td><input name="user[]" id="correo" type="email" placeholder="contacto@correo.com" style="width: 10em;"></td>
                    <td><input name="date[]" id="fecha" type="date" data-role="datebox" data-options='{"mode": "calbox"}'></td>
                    <td><input name="hour[]" id="hora" type="text" data-role="datebox" data-options='{"mode": "timebox", "overrideTimeFormat": 12}'></td>
                    <td><textarea name="mensaje[]" id="mensaje" placeholder="Su mensaje Aqui" style="width: 15em; max-width: 15em;"></textarea></td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td><input type="submit" value="Enviar" /></td>
                </tr>
            </tfoot>
        </table>
    </form>

我有一个克隆该表单的按钮,因此用户可以发送元素数组。

我的问题:如何使用JQuery将该数组发送到Web服务?我现在有这个:

<script>
        $("form").submit(function (event) {
            event.preventDefault();

            var result = new XMLHttpRequest;
            var URL = "checkMessage.ashx?sendTo=" + $('#correo').val() + "&dateIn=" + $('#fecha').val() + "&hourIn=" + $('#hora').val() + "&messageIn=" + $('#mensaje');
            result.open("GET", URL, false);
            result.send;
            var resultString = JSON.parse(result.responseText);
           // var resultString = JSON.parse(result.responseText);

            if (resultString.respuesta == 1)
            {
                alert("Su mensaje fue enviado");
            }
        })
    </script>

但是网络服务没有收到任何内容。

目前在我的网络服务中我只有这些:

 public void ProcessRequest (HttpContext context) {

    string[] destinatario;
    string respuesta;
    respuesta = context.Request.QueryString["sendTo"];}

因为我正在进行测试。

这是我第一次使用网络服务。

我的问题是,我无法使用网络服务,而且我不知道是不是

2 个答案:

答案 0 :(得分:1)

当你正在使用jQuery时,为什么你会编写自己的ajax函数,当jQuery具有出色的跨浏览器$.ajax函数时?

$("form").on('submit', function(e) {
    e.preventDefault();

    $.ajax({
        url : 'checkMessage.ashx',
        data: {
            sendTo: $('#correo').val(),
            dateIn: $('#fecha').val(),
            hourIn: $('#hora').val(),
            messageIn: $('#mensaje').val()
        }
    }).done(function(data) {
        console.log(data);
    });
});

我猜你的网络服务器已设置为接收GET请求,并使用您发送的数据,而且由于您没有包含任何代码,因此无法回答?

另请注意,在最后一个参数"&messageIn=" + $('#mensaje');上,您尝试发送一个DOM元素,但这不起作用。

答案 1 :(得分:0)

要将其发送到网络服务,您应该使用POST代替GET