将curl调用转换为javascript ajax调用

时间:2016-08-29 00:38:47

标签: javascript jquery ajax curl axios

如何将此curl请求转换为javascript中的ajax调用? (原始js或任何图书馆的答案都很好)

卷曲:

curl -H "Content-Type: application/json" -d '{"foo":0, "bar": 0, "baz":"test"}' -X GET http://localhost:8080/public/v1/state/HelloWorld

我在ajax调用中尝试过的网址(它出现了404错误):

GET http://192.168.56.101:8080/public/v1/state/HelloWorld?foo=0&bar=0&baz=test

代码

return axios.get(switchDomain + '/public/v1/state/HelloWorld', {
    params: {
      foo: 0,
      bar: 0,
      baz: "BER",
    }
  })
  .then(function(response){
    console.log('perf response', response);
  });

1 个答案:

答案 0 :(得分:3)

-d似乎会将您的CURL请求转换为POST,无论您使用-X选项,所以:

var req = new  XMLHttpRequest();
req.open( "POST", "http://localhost:8080/public/v1/state/HelloWorld", true);
req.send("foo=0&bar=0&baz=test");

最后,您可能需要在req.open之后和req.send之前添加内容类型标头。

req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

或者如您在问题中发布的那样,您可能希望将其作为JSON发送

var req = new  XMLHttpRequest();
req.open( "POST", "http://localhost:8080/public/v1/state/HelloWorld", true);
req.setRequestHeader("Content-Type", "application/json");
req.send(JSON.stringify({
    foo: 0,
    bar: 0,
    baz: "test"
}));