如何:浏览器将JSON发送到服务器?

时间:2016-05-18 12:17:35

标签: javascript json ajax forms

我有# Detect hosts of the format static.* acl host_static hdr_beg(host) -i static. # Style using reqirep # ------------- # Replace "static.domain.com" with "someFolder.domain.com" if the host is static.* and the path has at least two / symbols # This causes: static.domain.com ===> whatever3.domain.com #reqirep ^([^\ :]*\ /)([^/]+)(/.*\n)(^(?:[a-zA-Z0-9()\-=\*\.\?;,+\/&_]+:\ .+\n)+)*Host:\ static\.([^/]+?)$ \1\2\3\4Host:\ \2.\5 if host_static # # Replace "/someFolder/" with "/" at the beginning of any request path, if the host is static.* # This causes: /whatever3/another/long/path ===> /another/long/path #reqirep ^([^\ :]*)\ /[^/]+/(.*) \1\ /\2 if host_static #--------------- 。我想剥离特定数据元素的表单(或其他HTML),将它们形成JSON,然后将该JSON作为请求发送到域服务器,服务器将使用它。

上述工作的JavaScript是什么样的?

注意:我不需要CORS(例如没有跨网站,它都是同一台服务器)

1 个答案:

答案 0 :(得分:0)

以表格形式获取数据

您可以将serializeArray用于表单。您只需要以正确的方式解析它。下面提供了一个示例方法

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

行动中的示例:http://jsfiddle.net/sxGtM/3/

获取HTML元素中的内容

您可以使用document.getElementById方法获取div或其他内容,然后使用innerHTML属性

var MyDiv1 = document.getElementById('DIV1');
var content = MyDiv1.innerHTML;

使用jQuery将对象发布到服务器

function sendData() {
$.ajax({
    url: '/example',
    type: 'POST',
    contentType: 'application/json',
    data: <Your JSON Object>,
    dataType: 'json'
});
}