将curl转换为ajax请求

时间:2015-07-17 09:04:26

标签: javascript ajax curl

简单问题:有没有办法将此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

2 个答案:

答案 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加密你的身份验证。