【问题标题】:turn a curl call into a javascript ajax call将 curl 调用转换为 javascript ajax 调用
【发布时间】:2017-01-04 22:39:27
【问题描述】:

如何将此 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 调用中尝试的 URL(它给出了 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);
  });

【问题讨论】:

  • 我在 ajax 调用中尝试的 URL - 什么 ajax 调用?您没有显示任何有关您遇到的问题的代码
  • AJAX 调用没有做任何特别的事情。如果通过 AJAX 对192.168.56.101:8080/public/v1/state/… 的 GET 请求失败,这不是 AJAX/JS 的错。在浏览器中访问192.168.56.101:8080/public/v1/state/…。有什么东西吗?
  • 是的,只是将 GET 请求粘贴到我的浏览器中也会失败。但它适用于 curl 调用。所以我假设我不了解有关参数/数据如何传递的一些信息

标签: javascript jquery ajax curl axios


【解决方案1】:

似乎-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.openreq.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"
}));

【讨论】:

  • 公平地说,OP 可能不是 Facebook 的 JavaScript 工程师......但是是的。
  • @ceejayoz 很好,因为你什么时候需要成为一名 JavaScript 工程师(这是一件事吗?:P)来替换 3 行代码中的 URL?无意冒犯任何人!
  • 这是我评论中的“但是是的”部分。 :-p
  • 我可以处理进行 ajax 调用(或将带有参数的 URL 粘贴到我的浏览器中),它正在解释我不确定的 cURL 调用参数。这就是为什么我在 ajax / 我的浏览器的 URL 中发出 GET 请求的原因),当它不起作用时,查看 curl 参数在做什么,当我没有看到任何可以解释 curl 工作和 ajax 失败的原因时 -来这里发帖
  • @DonnyP 这很奇怪,自互联网诞生以来,查询字符串参数几乎都是标准的。
猜你喜欢
  • 2021-11-23
  • 2013-03-19
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多