使用 json-data POST 在 https 上自动登录


Autologin on https with json-data POST

可能的重复项:
使用 jQuery 将表单数据转换为 JS 对象

我需要将我的用户登录到外部网站,但有一个问题,这个网站只处理 json-data POST 值,例如 {"用户名":"用户","密码":"12345"}

<form action="https://external.com/login" method="POST">
<input name="username" value="user" />
<input name="password" value="12345" />
<input type="submit" />
</form>

以上只发送平均键=值数据,如何使用 POST json 数据到外部 https?

下面是一个简单的 jquery 示例,使用 jQuery.ajax()

.HTML:

<form action="https://external.com/login" method="POST" onsubmit="return postJson(this)">
<input name="username" value="user" />
<input name="password" value="12345" />
<input type="submit" />
</form>

JQ:

function postJson(form) {
    var action = $(form).attr('action');
    var user = $('[name="username"]', form).val();
    var pass = $('[name="password"]', form).val();
    console.log('action=' + action + ', user=' + user + ', pass=' + pass);
    $.ajax({
        url: action,
        type: 'POST',
        data: JSON.stringify({ username: user, password: pass }),
        success: function(data, status) {
            // do something after login
            console.log('success');
        },
        error: function() {
            console.log('error');
        }
    });
    return false;
}

JSFiddle