简单问题:有没有办法将此curl转换为ajax请求?
curl -v https://api.mydomain.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF" \
-d "grant_type=client_credentials"
虽然我非常确定如何处理-H
,但我不知道如何指定-u
和-d
。
答案 0 :(得分:5)
如果您使用XMLHTTPRequest,则可以使用git config --global push.default simple
来设置请求标头(-H)
setRequestHeader
可以通过简单地将凭证预先添加到url来完成:
-u
https://1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF@api.mydomain.com/v1/oauth2/token
是POST主体,应该是-d
答案 1 :(得分:1)
这应该是使用jQuery Ajax方法的有效示例:
$.ajax({
type: "POST",
url: "https://api.mydomain.com/v1/oauth2/token",
dataType: 'json',
data: {"grant_type": "client_credentials"},
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + [anylib].base64encode('1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF'));
xhr.setRequestHeader('Accept-Language', 'en_US');
}
});
编辑 - 原生:(注意不同的浏览器实现)
xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4 && xhr.status==200){
consolelog(xhr.responseText);
}
}
xhr.setRequestHeader('Authorization', 'Basic ' + [anylib].base64encode('1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF'));
xhr.setRequestHeader('Accept-Language', 'en_US');
xhr.setRequestHeader("Content-type","application/json");
xhr.open("POST","https://api.mydomain.com/v1/oauth2/token",true);
xhr.send("grant_type=client_credentials");
Edit2:刚刚被同事告知你需要base64加密你的身份验证。