`

javascript/jquery读取和修改HTTP headers

 
阅读更多
jQuery Ajax可以通过headers或beforeSend修改request的HTTP headers,例如:
    $.ajax({
        url: "./test.php",
        type: "POST",
        headers: {
            "Accept" : "text/plain; charset=utf-8",
            "Content-Type": "text/plain; charset=utf-8"
        },
        /*
        beforeSend: function(jqXHR, settings) {
            jqXHR.setRequestHeader('Accept', 'text/plain; charset=utf-8');
            jqXHR.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');
        },
        */
        data: {"user" : "min", "pass" : "he"},
        error: function(jqXHR, textStatus, errorThrown) {
            //....
        },
        success: function(data, textStatus, jqXHR) {
            //....
        }
    }

注意::W3规定XMLHttpRequest并不能修改全部的HTTP Headers,而仅是一小部分。
比如:
Host: localhost:58188
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
role:2
username:106110454@qq.com
password:lw=kQH
password:1


jquery获取HTTP headers:
test.html:
    <html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    </head>
    <body></body>
    <script type="text/javascript">
    $(document).ready(function(){
        $.ajax({
            url: "./test.php",
            type: "POST",
            data: {"user" : "min", "pass" : "he"},
            error: function(jqXHR, textStatus, errorThrown) {
                if (textStatus == "error") {
                    alert(textStatus + " : " +errorThrown);
                } else {
                    alert(textStatus);
                }
            },
            success: function(data, textStatus, jqXHR) {
                alert(jqXHR.getResponseHeader("Server"));
                alert(jqXHR.getResponseHeader("Content-Type"));
                alert(jqXHR.getResponseHeader("X-Powered-By"));
                alert(jqXHR.getResponseHeader("Content-Encoding"));
                alert(jqXHR.getAllResponseHeaders());
                alert(jqXHR.getResponseHeader("Set-Cookie"));       //返回null,不能获取Set-Cookie的值
                alert(data + textStatus);
            }
        });
    });
    </script>
    </html>
test.php:

    <?php
    if (isset($_COOKIE["time"])) {
        $time = $_COOKIE["time"] + 1;
    } else {
        $time = 1;
    }
    setcookie("time", $time);

    $user = $_REQUEST["user"];
    $pass = $_REQUEST["pass"];
    print $user.$pass." ".$time;

jQuery通过XMLHttpRequest的getResponseHeader或getAllResponseHeaders()可以获取指定的HTTP header field的值,但规定不能获取Set-Cookie和Set-Cookie2的值。

参考:

http://stackoverflow.com/questions/1145588/cannot-properly-set-the-accept-http-header-with-jquery
http://stackoverflow.com/questions/2444489/getresponseheader-is-not-a-function
分享到:
评论

相关推荐

    jee2020_jsp_springboot5.zip_JavaScript/JQuery_Java__JavaScript/JQuery_Java_

    在IT行业中,Spring Boot框架和JavaScript(包括JQuery)是两个非常重要的技术栈,它们在构建现代Web应用程序中起着核心作用。在这个名为"jee2020_jsp_springboot5.zip"的压缩包中,我们可以看到一个针对Java、...

    jQuery ajax读取json文件内容

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和Ajax交互等任务。本文将深入探讨如何使用jQuery的ajax方法来读取JSON文件内容。JSON(JavaScript Object Notation)是一种轻量...

    详解原生JavaScript实现jQuery中AJAX处理的方法

    在JavaScript的世界里,jQuery库因其简洁的API和强大的功能而广受欢迎,特别是在处理AJAX请求时。然而,了解如何使用原生JavaScript实现AJAX请求是非常重要的,因为这有助于提升性能和理解底层工作原理。这篇文章的...

    crud__js:javascript的crud系统

    CRUD(Create, Read, Update, Delete)是数据库操作的基本概念,用于描述对数据的四种基本操作:创建、读取、更新和删除。在JavaScript环境下,CRUD系统可以帮助开发者更高效地管理数据,通常用于前端应用程序,如...

    页面排序功能

    在给定的资源中,我们看到与JavaScript相关的文件,特别是与jQuery Tablesorter插件有关的文件,这表明我们将讨论如何使用JavaScript和jQuery实现一个动态的页面列表排序功能。 首先,让我们了解一下jQuery ...

    JSONP解决跨域问题

    &lt;/httpProtocol&gt; ``` 这里设置了`Access-Control-Allow-Origin`为`*`,表示允许所有源进行跨域请求。如果只允许特定源,可以替换`*`为具体域名。 服务端运行后,前端可以通过jQuery发起JSONP请求。例如: ```...

    mysql增删改查

    本话题将聚焦于“mysql增删改查”,结合jQuery和JavaScript技术进行深入探讨。 首先,MySQL是一个广泛使用的开源关系型数据库管理系统,它支持SQL语言,提供了高效的数据存储和检索功能。在Web应用中,MySQL常作为...

    JavaScript 用fetch 实现异步下载文件功能

    此外,fetch API还可以让我们更细粒度地控制HTTP请求和响应处理,例如可以读取流式响应等。 需要注意的是,fetch API在一些旧版浏览器中可能不受支持,开发者需要使用polyfill或者回退到传统的XMLHttpRequest来实现...

    http请求,xml格式

    在开发过程中,开发者可能使用各种编程语言(如Java、Python、JavaScript等)和库(如Apache HttpClient、requests、jQuery等)来构造和发送XML格式的HTTP请求。这些工具通常提供了方便的方法来构建XML文档、设置...

    crud_example:crud_example

    在JavaScript中,我们可以利用AJAX(异步JavaScript和XML)技术来实现与服务器的通信,尽管现在的实践更多地使用Fetch API或jQuery的$.ajax方法。 1. 创建(Create): 在创建新数据时,前端通常会有一个表单供用户...

    crud-param:CRUD URL 参数

    在IT行业中,CRUD操作是数据库管理的基本概念,代表创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。这些操作通常与Web应用中的接口设计紧密关联,尤其是在JavaScript环境中。当我们谈论"crud-...

    js+html图片批量上传.7z

    同时,JavaScript(可能是jQuery库)将用于监听文件选择事件,读取选定的文件,并将这些文件的数据准备发送到服务器。 例如,HTML可能如下所示: ```html &lt;input type="file" id="imageUpload" multiple /&gt; ``` ...

    async-file-upload-using-jquery-formdata-and-asp-net-web-api:使用JQuery,FormData和ASP.NET Web Api上传异步文件

    在现代Web应用中,异步文件上传是一...前端使用jQuery处理表单提交和文件读取,通过Ajax将文件数据发送到后端;后端使用ASP.NET Web API接收文件,进行必要的处理或保存。整个过程无须页面刷新,提高了用户的交互体验。

    asp.net多文件上传

    var fileName = file.Headers.ContentDisposition.FileName; // 读取文件流并保存 } return Request.CreateResponse(HttpStatusCode.OK); } ``` 以上就是四种在ASP.NET中实现多文件上传的方法。每种方法都有...

    JS一个表的增删改查

    在现代的JavaScript中,我们可以使用`fetch` API或者jQuery的`$.ajax()`方法来实现这个功能。 1. **创建(Create)**:当用户输入新数据时,JavaScript可以捕获这些输入,然后使用AJAX发送一个POST请求到服务器,将...

    jquery $.ajax()取xml数据的小问题解决方法

    这可以在Chrome或Safari的开发者工具中的Headers标签页查看和确认。 7. Firebug工具: Firebug是一个非常流行的Web开发调试工具,它安装在Firefox浏览器中。通过Firebug可以查看和调试网页的HTML、CSS、JavaScript...

    Ajax跨域实现代码(后台jsp).docx

    同源策略阻止了一个源自一个域名的JavaScript访问另一个域名的资源,这是为了防止恶意网站读取或篡改其他网站的数据。然而,在某些情况下,如前后端分离的开发模式或者需要获取第三方API数据时,我们需要跨越这个...

    JS实现上传选择图片功能代码.zip

    在JavaScript(JS)中实现上传选择图片的功能是前端开发中常见的需求,这通常涉及到HTML5的File API、事件处理和Ajax技术。以下是对这个主题的详细解析。 首先,我们需要一个HTML表单元素来让用户选择图片。这个...

    上传之前预览图片

    当用户选择文件后,可以通过JavaScript的FileReader API读取并显示图片。 1. 创建HTML结构: 创建一个文件输入控件和一个用于预览的图片占位符: ```html &lt;input type="file" id="imageInput" accept="image/*" ...

    文件上传.rar(net web api与前端的文件上传,后台接受,完整版,)

    在前端,我们可以使用JavaScript或者更现代的库如jQuery、Angular、React或Vue来构造这样的请求。一个基本的HTML表单可能如下所示: ```html &lt;form action="/api/upload" method="post" enctype="multipart/form-...

Global site tag (gtag.js) - Google Analytics