2013-02-01 40 views
1

可能重复:
Convert form data to JS object with jQuery自动登录与JSON数据POST HTTPS

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

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

这上面只发送平均键=值数据,如何可以使用JSON-POST数据到外部的https?

回答

0

下面是使用jQuery.ajax()

HTML一个简单的jQuery例子:

<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

+0

做这项工作的外部donain? – user1482261

+0

@ user1482261不,对于跨域,你必须使用JSONP,看到这个问题http://stackoverflow.com/q/3506208/1741542 –

+0

我试过jsonp,但在POST中jsonp =( – user1482261