当前位置: 首页 > 面试题库 >

在没有JQuery的情况下将JSON发送到服务器并获取JSON作为回报

仲孙华奥
2023-03-14
问题内容

我需要将JSON(我可以对其进行字符串化)发送到服务器,并在用户端检索得到的JSON,而无需使用JQuery。

如果我应该使用GET,如何将JSON作为参数传递?是否有太长的风险?

如果我应该使用POST,如何onload在GET中设置功能的等效项?

还是应该使用其他方法?

备注

这个问题不是关于发送简单的AJAX。不应将其作为重复项关闭。


问题答案:

使用POST方法以JSON格式发送和接收数据

// Sending and receiving data in JSON format using POST method
//
var xhr = new XMLHttpRequest();
var url = "url";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        console.log(json.email + ", " + json.password);
    }
};
var data = JSON.stringify({"email": "hey@mail.com", "password": "101010"});
xhr.send(data);

使用GET方法以JSON格式发送接收数据

// Sending a receiving data in JSON format using GET method
//      
var xhr = new XMLHttpRequest();
var url = "url?data=" + encodeURIComponent(JSON.stringify({"email": "hey@mail.com", "password": "101010"}));
xhr.open("GET", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        console.log(json.email + ", " + json.password);
    }
};
xhr.send();

使用PHP在服务器端处理JSON格式的数据

<?php
// Handling data in JSON format on the server-side using PHP
//
header("Content-Type: application/json");
// build a PHP variable from JSON sent using POST method
$v = json_decode(stripslashes(file_get_contents("php://input")));
// build a PHP variable from JSON sent using GET method
$v = json_decode(stripslashes($_GET["data"]));
// encode the PHP variable to JSON and send it back on client-side
echo json_encode($v);
?>

HTTP
Get请求的长度限制取决于所使用的服务器和客户端(浏览器),范围从2kB-8kB。如果URI的长度超过服务器的处理能力,则服务器应返回414(请求URI太长)状态。

注意 有人说我可以使用状态名称代替状态值。换句话说,我可以使用xhr.readyState === xhr.DONE代替。xhr.readyState === 4问题是Internet Explorer使用不同的状态名称,因此最好使用状态值。



 类似资料:
  • 问题内容: 我有多个这样的人 它们不是嵌套的或类似的东西。基本上是不同的领域。我需要像这样在 node.js 中将它们组合为一个: 我可以很好地使用 jQuery 。这是浏览器中的一个工作示例: http://jsfiddle.net/qhoc/agp54/ 但是,如果我在 node.js中 执行此操作,则不希望加载jQuery(这有点用处,加上 node.js的jQuery 在 Windows

  • 问题内容: 我的网页上的表单有问题。我正在尝试使用ajax和json将表单值发送到php服务器,但是我无法正确地创建json对象。 我的JS代码 我的PHP代码 我知道已经问过类似的问题,但是答案并没有帮助我。 感谢您的帮助。 问题答案: 我能够获取json对象并在php端进行解析。某些变量的名称可能有所不同,部分原因是其中一些是预先编写的代码。这是我采取的步骤。 资料夹结构 Index.html

  • 问题内容: 最近5个小时,我一直在尝试将json对象发布到PHP脚本中。我已经阅读了所有文档,似乎代码应该可以,但事实并非如此。发出并接收到请求,但是我无法访问发布的json数据,甚至不知道它是否已正确发送。我不断得到一个空的php数组,而不是json数据。 这是php脚本(test.php) 我正在使用来自https://github.com/pokeb/asi-http- request.gi

  • 问题内容: 我正在使用jQuery将JSON发布到Java服务器,但是我认为JSON一定是错误的。这是我的数据及其发送方式的示例: 我正在使用Wicket的AbstractAjaxBehavior接收数据,并希望获得一个我可以解析的JSON字符串。当我获得传递的参数的映射时,键集如下所示: 显然,我可以轻松获取名称和描述的值,但是我的项目数组的键弄乱了。我敢肯定这很简单,但是我似乎一直在解决这个问

  • 问题内容: 我创建了一个需要发布到jersey的json,这是由grizzly运行的具有REST网络服务的服务器获取需要输出的传入json对象。我正在尝试,但不确定如何正确实施。 我有一个在加载时运行此方法的html文件 问题答案: 要将json发送到服务器,首先必须创建json 这就是构造ajax请求以将json作为post var发送的方式。 json现在将在post var中。

  • 问题内容: 是否有可用的Tomcat API或配置可以告诉应用程序(可能在启动时)在没有请求的情况下在哪个端口上运行? 想象一个场景,其中有两个Web应用程序在同一个Tomcat中运行,并且其中一个需要从另一个中调用Web服务。我们不希望该请求离开Tomcat(如果您使用Apache服务器名称或绝对URL,则该请求将发出并再次返回,并且可以转到任何实例)并再次进入。为此,我知道机器名称,但无法获取