2013-02-01 39 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