jQuery没有传递自定义标头

时间:2015-08-13 14:44:08

标签: javascript jquery header

我已经完成了与使用jQuery发送标头相关的文档和谷歌链接(包括Stack Overflow),但没有一个有效。我正在使用Fiddler和FireBug检查请求,并且都没有显示自定义标头。

我对jQuery很新,所以也许所有的答案都假设我不了解包含的知识。

我的最终目标是调用RESTful服务,该服务需要用户名/密码组合在标题中(此问题的主要原因),一旦经过身份验证调用另一个Web服务以获取在新创建的cookie中使用的安全令牌,然后将用户重定向到另一个需要此安全cookie进行身份验证的站点。 (我讨厌单点登录集成)

这是我的HTML文件,其中包含(下载的)jQuery和自定义JS:

<!DOCTYPE html>
<html>
    <head>
        <title>Hello jQuery</title>
        <script src="../js/jquery-1.11.3.js"></script>
        <script src="../js/jquery.form-3.51.0.js"></script>
        <script src="../js/login.js"></script>
    </head>

    <body>
        <a href="/rest/user/authenticate" id="loginLink">click to launch</a>
</br>
</br>
                <form id="loginForm" method="GET" action="/rest/user/authenticate">
                        User ID:<br>
                        <input type="text" style="width:100px;" size="16" id="user" name="user" value="" /><br>
                        Password:<br>
                        <input type="password" style="width:100px;" size="16" id="password" name="password" /><br><br>

                        <input style="cursor: hand" type="submit" border="0" align="middle" name="" value='Log in' /><br>
                </form>
    </body>
</html>

我尝试使用表单添加标题(通过一次注释一次,使用beforeSend和标题):

var frm = $('#loginForm');
frm.submit(function (ev) {
    $.ajax({
        url: frm.attr('action'),
        type: frm.attr('method'),
        dataType: "xml",
        contentType: "text/plain",
        beforeSend: function(xhr){xhr.setRequestHeader('BLAH', 'test-value');},
        //headers: {"BLAH": "test-value"},

        success: function (data) {
            alert("Success");
        },
        error:function(){
            alert("Error");
        }

    });
    ev.preventDefault();
});

我想也许这是提交表单的一些限制,所以我也尝试通过点击链接获得自定义标题,但这也不包括标题。

$('#"loginLink"').click(function(){
    event.preventDefault();
     $.ajax({
            url: '/rest/user/authenticate',
            type: 'GET',
            data: {},
            contentType: 'text/plain',
            //headers: {"BLAH": "test-value"},
            beforeSend: function(xhr){xhr.setRequestHeader('BLAH', 'test-value');},
            success: function () { },
            error: function () { },
    });
});

请求正在发送到我的RESTful服务,但不包含标头。

我做错了什么?

谢谢,     肖恩

0 个答案:

没有答案