【问题标题】:Send Custom HTTP Body with AJAX POST request使用 AJAX POST 请求发送自定义 HTTP 正文
【发布时间】:2017-05-17 22:38:17
【问题描述】:

如何使用纯 Javascript(不是 JQuery)的 POST AJAX 请求发送自定义 HTTP 正文?我实际上是在尝试在正文中发送一个 JSON 文件。我可以设置自定义标头字段,但找不到如何设置 HTTP 正文。

下面是代码

function calculateorder() {

    document.getElementById("finalize").style.display = "inline";

    url1 = "https://ethor-prod.apigee.net/v1/stores/";    
    url2 = "/orders/calculate?apikey=wSgbv9PE8aJhDOI17vvTUX1NlAceUXG7";

    url = url1 + store_id + url2;

    var xmlhttp;
    xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            alert(xmlhttp.responseText);
        }
    }

    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader("Content-Type", "application/json");
    xmlhttp.send(JSON.stringify(calculate));
}

当我将相同的标头和 JSON 文件与 Rested(OSX HTTP 客户端)一起使用时,它可以完美运行

【问题讨论】:

  • 您是否尝试将发布的数据作为文件读取到服务器上?如果是这样,请参阅stackoverflow.com/questions/16223485/…
  • 我不确定。我在 Java 中使用数据输出流做了同样的事情,它工作。我猜服务器只是将其读取为 JSON 流。
  • 在该示例中我应该将 JSON 放在哪里?
  • 用你的json替换xml
  • 试过了。没用

标签: javascript ajax json http post


【解决方案1】:

XmlHttpRequest Obeject 的.send() 方法中添加参数

像这样:

xhr.send('username=me');

发送 JSON 格式数据myData 像这样:

xhr.send(JSON.stringify(myData));

【讨论】:

  • 如果我要发送 JSON 文件怎么办?
  • 您计算机中的文件?还是只是一个 json 格式的数据?
  • Json 格式数据。 json文件是完美的。我使用 Rested 进行了检查。但由于某种原因,它在与 AJAX 一起使用时不起作用。
  • 试试xhr.send(JSON.stringify(myData));
  • 控制台上有任何错误信息吗?或者尝试console.log(JSON.stringify(myData))调试
猜你喜欢
  • 2015-01-18
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多