【问题标题】:Pass Parameters To XMLHttpRequest Object将参数传递给 XMLHttpRequest 对象
【发布时间】:2012-10-01 15:51:36
【问题描述】:

如何将参数传递给 XMLHttpRequest 对象?

function setGUID(aGUID) {

    var xhReq = new XMLHttpRequest();

    xhReq.open("POST", "ClientService.svc/REST/SetAGUID" , false);
    xhReq.send(null);
    var serverResponse = JSON.parse(xhReq.responseText);
    alert(serverResponse);
    return serverResponse;
}

我需要使用 javascript 而不是 jquery,在 jquery 中我得到了它来处理这段代码,但似乎无法弄清楚直接的 javascript 方式..

function setGUID(aGUID) {

    var applicationData = null;

    $.ajax({
        type: "POST",
        url: "ClientService.svc/REST/SetAGUID",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({ aGUID: aGUID }),
        dataType: "json",
        async: false,
        success: function (msg) {

            applicationData = msg;

        },
        error: function (xhr, status, error) { ); }
    });

    return applicationData;

}

【问题讨论】:

标签: javascript


【解决方案1】:

网上有很多关于“xmlhttprequest post”的教程。我只是复制其中一个:

看看:

http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

https://www.google.com/search?q=xmlhttprequest+post

var http = new XMLHttpRequest();
var url = "url";
var params = JSON.stringify({ appoverGUID: approverGUID });
http.open("POST", url, true);

http.setRequestHeader("Content-type", "application/json; charset=utf-8");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

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

【讨论】:

  • 什么是 http?一个新的 XMLHttpRequest()?
  • 以下行现在抛出“不安全的标头错误”: http.setRequestHeader("Content-length", params.length); http.setRequestHeader("连接", "关闭");我试图让它在没有这些行的情况下工作,但参数似乎没有设置..
【解决方案2】:

只需删除这两行(不允许设置这些标题):

http.setRequestHeader("Content-type", "application/json; charset=utf-8");
xmlHttp.setRequestHeader("Connection", "close");

【讨论】:

    【解决方案3】:

    这种方式适合我。

    var data = new FormData();
    data.append('parameter_1', 'value parameter 1');
    data.append('parameter_2', 'value parameter 2');
    ...
    
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'URL', true);
    xhr.onload = function () {
        console.log(this.responseText);
    };
    xhr.send(data);
    

    【讨论】:

      猜你喜欢
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多