Javascript:如何将任意请求主体发布到服务器?

时间:2013-12-18 14:54:33

标签: javascript http

正常情况下,我们可以向服务器发送ajax请求或提交表单,HTTP request body将按此name=helloworld&age=123进行编码。

现在我们的服务器only accept JSON data作为请求体,有没有办法在Javascript中更改请求体的编码方法?

1 个答案:

答案 0 :(得分:3)

HTML表单为您提供了三种编码数据的选项。 text/plain仅用于调试(并且在给定浏览器开发人员工具时不是非常有用的事件),其他两个都不是JSON。

使用XHR,编码是对数据进行编码。 send方法可以采用字符串。您可以根据需要对该字符串中的数据进行编码。

function sendJSON() {
    var data = {
        name: "helloworld",
        age: 123
    };

    var json = JSON.stringify(data);

    var xhr = new XMLHttpRequest();
    xhr.open("POST", "/example/");
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.send(json);
}