相关疑难解决方法(0)

将JSON发送到服务器并在没有JQuery的情况下检索JSON

我需要将JSON(我可以将其字符串化)发送到服务器并在用户端检索生成的JSON,而不使用JQuery.

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

如果我应该使用POST,如何onload在GET中设置函数的等价物?

或者我应该使用不同的方法?

备注

这个问题不是关于发送一个简单的AJAX.它不应该作为重复关闭.

javascript post json get xmlhttprequest

92
推荐指数
2
解决办法
18万
查看次数

61
推荐指数
5
解决办法
6万
查看次数

WebKit"拒绝设置不安全的标题'内容长度'"

我正在尝试实现简单的xhr抽象,并在尝试设置POST的标头时收到此警告.我认为它可能与在单独的js文件中设置标题有关,因为当我<script>在.html文件中的标记中设置它时,它工作正常.POST请求工作正常,但我收到此警告,我很好奇为什么.我得到这样的警告两个content-lengthconnection头,但仅在WebKit的浏览器(Chrome浏览器5测试版和Safari 4).在Firefox中,我没有收到任何警告,Content-Length标头设置为正确的值,但Connection设置为keep-alive而不是close,这让我觉得它也忽略了我的setRequestHeader调用并生成它自己的.我没有在IE中试过这段代码.这是标记和代码:

test.html:

<!DOCTYPE html>
<html>
    <head>
        <script src="jsfile.js"></script>
        <script>
            var request = new Xhr('POST', 'script.php', true, 'data=somedata',  function(data) { 
                console.log(data.text); 
            });
        </script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

jsfile.js:

function Xhr(method, url, async, data, callback) {
    var x;
    if(window.XMLHttpRequest) {
        x = new XMLHttpRequest();

        x.open(method, url, async);

        x.onreadystatechange = function() {
            if(x.readyState === 4) {
                if(x.status === 200) {
                    var data = {
                        text: x.responseText,
                        xml: x.responseXML
                    };
                    callback.call(this, data);
                }
            }
        } …
Run Code Online (Sandbox Code Playgroud)

javascript ajax xmlhttprequest

47
推荐指数
1
解决办法
7万
查看次数

XMLHttpRequest发布HTML表单

当前设置

我有一个像这样的HTML表单.

<form id="demo-form" action="POST" method="post-handler.php">
   <input type="text" name="name" value="previousValue"/>
   <button type="submit" name="action" value="dosomething">Update</button>
</form>
Run Code Online (Sandbox Code Playgroud)

我可能在页面上有很多这些表单.

我的问题

如何异步提交此表单而不是重定向或刷新页面?我知道怎么用XMLHttpRequest.我遇到的问题是在javascript中从HTML中检索数据然后放入一个post请求字符串.这是我目前用于zXMLHttpRequest`的方法.

function getHttpRequest() {
    var xmlhttp;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    return xmlhttp;
}

function demoRequest() {
       var request = getHttpRequest();
       request.onreadystatechange=function() {
             if (request.readyState == 4 && request.status == 200) {
                   console.log("Response Received");
             }
       }
       request.open("POST","post-handler.php",true);
       request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
       request.send("action=dosomething");
}
Run Code Online (Sandbox Code Playgroud)

例如,假设在demoRequest()单击表单的提交按钮时调用了javascript方法,如何从此方法访问表单的值,然后将其添加到XMLHttpRequest …

javascript forms ajax xmlhttprequest http-post

19
推荐指数
2
解决办法
7万
查看次数

纯JavaScript中的AJAX Post实现

在纯Javascript中是否有任何AJAX Post的实现(可能使用xmlhttprequest)?

例如,如果我有这样的表单:

<form action="request.php" id="register_form">
  <input type="text" name="first_name" placeholder="First Name">
  <input type="text" name="last_name" placeholder="LastName">
  <input type="submit" value="submit_now">
</form>
Run Code Online (Sandbox Code Playgroud)

这是我在jQuery中实现的AJAX

$('#register_form').submit(function(e) {

var postData = $(this).serializeArray();
var formURL = $(this).attr("action");

/* start ajax submission process */
$.ajax({
    url: formURL,
    type: "POST",
    data: postData,
    success: function(data, textStatus, jqXHR) {
        alert('Success!');
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert('Error occurred!');
    }

});

e.preventDefault(); //STOP default action

/* ends ajax submission process */

});
Run Code Online (Sandbox Code Playgroud)

我可以使用jQuery 做同样的事情吗?如果可能,我如何将上述jQuery代码实现为纯/纯Javascript代码?

javascript ajax jquery xmlhttprequest

16
推荐指数
1
解决办法
4万
查看次数

将参数传递给XMLHttpRequest对象

如何将参数传递给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;
}
Run Code Online (Sandbox Code Playgroud)

我需要使用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;

}
Run Code Online (Sandbox Code Playgroud)

javascript

11
推荐指数
1
解决办法
6万
查看次数

XMLHttpRequest 不发送 POST 数据

我尝试使用 XMLHttpRequest 将 POST 数据发送到 PHP 文件。URL 是正确的,但 PHP 无法捕获任何发送的数据,只能返回空响应。

我在客户端使用纯 JavaScript,在服务器上使用 PHP 7.1

我的PHP:

$data->msg = 'PHP is working';
$data->user = $_POST['user'];
$data->pass = $_POST['pass'];
echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)

我的 JavaScript:

var data = { 'user': 'myUser', 'pass': 'myPass' };

var xhr = new XMLHttpRequest();
xhr.open('POST', 'myurl', true);
xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var res = JSON.parse(xhr.response);
        console.log(res);
    }
};
xhr.send(data);

// Expected output: {msg: "PHP is working", user: …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax post json

9
推荐指数
1
解决办法
2万
查看次数

firebug:如何在firebug控制台中发送POST数据?

是否可以使用POST将数据发送到服务器?

即)我想将POST数据发送到url:

http://www.a.com/b?cmd=tt
Run Code Online (Sandbox Code Playgroud)

使用POST数据:

a=1
b=2
Run Code Online (Sandbox Code Playgroud)

它可行吗?怎么样?

html javascript firebug

8
推荐指数
2
解决办法
2万
查看次数

使用MemoryStream和ZipArchive将zip文件返回到asp.net web api中的客户端

我试图使用以下代码将zip文件从asp.net web api返回给客户端:

private byte[] CreateZip(string data)
{
    using (var ms = new MemoryStream())
    {
        using (var ar = new ZipArchive(ms, ZipArchiveMode.Create, true))
        {
            var file = archive.CreateEntry("file.html");

            using (var entryStream = file.Open())
            using (var sw = new StreamWriter(entryStream))
            {
                sw .Write(value);
            }
        }
        return memoryStream.ToArray();
    }
}

public HttpResponseMessage Post([FromBody] string data)
{
    HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
    result.Content = new ByteArrayContent(CreateZip(data));
    result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/zip, application/octet-stream");
    return result;
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我收到以下错误:

ExceptionMessage":"值'application/zip,application/octet-stream'的格式无效."

这是JS代码:

$.ajax({
  type: "POST",
  url: url,
  data: …
Run Code Online (Sandbox Code Playgroud)

c# ajax memorystream ziparchive asp.net-web-api

6
推荐指数
2
解决办法
2万
查看次数

如何在没有任何扩展的情况下从 Google Chrome 发送 POST HTTP 请求?

使用 Rest 服务时,我们可以在 Google Chrome 中发送 POST HTTP 请求吗?我尝试了几个扩展,但我需要直接从 Chrome 浏览器

rest post google-chrome webmethods http

5
推荐指数
1
解决办法
2万
查看次数