2016-05-15 79 views
1

我需要做的JavaScript的要求做出的請求從JavaScript,但我只知道如何與curl使其:如何通過類比捲曲要求

curl https://example.com/api -u test_123: -d source=123 -d description="Aaaa Bbbb" -d email="[email protected]" 

我知道-d是一個POST參數,這樣我就可以使:

fetch(`${config.baseUrl}/api/users/profile/`, 
{ method: 'POST', 
    data: JSON.stringify({source: 123, description: 'Aaaa Bbb', email: '[email protected]'}) 
}) 
.then(response => { 
    // do something 
}) 

我該如何設置-u用戶?它是頭部嗎?

更新

我做在調試模式的請求,並得到下面的輸出:

> * Server auth using Basic with user 'sk_test_GAaENEsG0PBmvtHBA2g49sPy' 
> > POST /v1/customers HTTP/1.1 
> > Authorization: Basic c2tfdGVzdF9HQWFFTkVzRzBQQm12dEhCQTJnNDlzUHk6 
> > User-Agent: curl/7.35.0 
> > Host: api.stripe.com 
> > Accept: */* 
> > Content-Length: 94 
> > Content-Type: application/x-www-form-urlencoded 

所以-u選項只是轉換爲base64?

+2

不知道如何與同構做到這一點,但你可能要檢查http://stackoverflow.com/questions/31473420/make-an-http-post-authentication-basic-request-using-javascript – Sergio

+0

Em,沒有答案..) – Janom

+0

Aaa ok我已經得到了。謝謝。 – Janom

回答

1

我不知道你使用的這個函數fetch,我假定它是同構的一部分。如果它支持headers選項可以設置Authorization頭用base64編碼的令牌:

fetch(`${config.baseUrl}/api/users/profile/`, 
{ method: 'POST', 
    headers: { 
    "Authorization": "Basic " + window.btoa("test_123:password") 
    }, 
    data: JSON.stringify({source: 123, description: 'Aaaa Bbb', email: '[email protected]'}) 
}) 
.then(response => { 
    // do something 
}) 
+0

是的,謝謝。 – Janom