导航:首页 > 编程语言 > 在js中怎么获取响应头

在js中怎么获取响应头

发布时间:2023-07-31 02:26:19

『壹』 js如何获取框架HTTP加载状态(200/500)

我只能很遗憾的和你说,在javaScript中只有AJAX才能获取响应状态,普通的IFRAME是无法获取的。

『贰』 JS能获取HTTP头么

当然能了,下面附代码
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和-Cookie2的值。

『叁』 ajax 请求响应头信息Connection

Connection是后台做数据库操作的时候创建的连接,如果需要关闭,在后台把你创建的连接调用close()方法就行了。
如:
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement("select * from booktab");
rs = pstmt.executeQuery();
while (rs.next()) {
// traverse the records
}
} catch (SQLException e) {
// handle exception
} finally {
if (rs != null) { try { rs.close(); } catch (Exception e) { } }
if (pstmt != null) { try { pstmt.close(); } catch (Exception e) { } }
if (conn != null) { try { conn.close(); } catch (Exception e) { } }
}

『肆』 Node.js的HTTP与事件初步介绍&怎么查看API

Node.js的HTTP与事件初步介绍&如何查看API(入门篇)
接着第一篇来说,当然,同样约定下面简称为Node(个人认为比较标准的说法),标题用node.js主要是为了方便阅读。同样,大牛可以略过这篇文章啦!现在,主要说3个问题:(1)接着第一篇介绍完Http其他部分(2)事件模型的介绍(3)如何查看API 文档.
首先感谢下网友hellostory,修改下上一篇的程序的bug。
一、修改前一篇的程序bug

二、接着说HTTP其他部分
因为HTTP是Node的核心模块,因此,接着上一篇,把HTTP模块讲完。
1、 http.ClientRequest类。
可以看到,该类具有5个事件(实现接口的事件,暂且不说)、6个方法。那么我们从字面意思就可以看出是“客户端请求”的意思。但是我们需要了解以下几点:
该类的实例是在http.request中创建并返回的,也就是说,var req = http.request(options, function(res){});req就是该类对象。那么如何来使用这些方法和事件呢,来一段程序,就明白了。

Class: http.ClientRequest
Event 'response'
Event: 'socket'
Event: 'connect'
Event: 'upgrade'
Event: 'continue'
request.write(chunk, [encoding])
request.end([data], [encoding])
request.abort()
request.setTimeout(timeout, [callback])
request.setNoDelay([noDelay])
request.setSocketKeepAlive([enable], [initialDelay])
首先,发送一个请求,请求数据:
var http=require('http'); var options = { hostname: 'translat', port: 80, path: '/', method: 'POST' }; var req=http.request(options,function(response){ var str=''; response.on('data',function(data){ str=str+data; }); response.on('end',function(){ console.log(str); }); }); req.on('error', function(e) { console.log('problem with request: ' + e.message); }); req.end();
做一下简单的说明,response.on('data',function(data){});是不断的获取返回的数据,往str中添加;监听的'data'事件(在数据流中,暂时不做介绍)。response.on('end',function(){});是监听等待响应结束事件,这时,就可以取到完整的返回数据。因为,响应时,数据会分包发送。req对象监听error事件,是防止请求出错,方便打印错误信息,如果是写成REST API,那么这里可以做一个容错处理。

这段代码很简单,但是没有说5个事件(实现接口的事件,暂且不说)、6个方法。因此,举几个特征明显的例子。
req.write('name=vczero','utf8');//write(chunk, [encoding]),发送请求body的数据块。
req.abort();//加上这句,会发现problem with request: socket hang up,他的作用是终止请求那么什么情况下,终止请求呢?比如:你要获取一个登陆的access_token,你的参数不合理。我们会采取中断请求。因此,可以注释这句代码。
req.end('language=node','utf8');//end([data], [encoding])结束发送请求,如果没有发送body的任何部分,将会将数据刷到流中。如果指定了数据,该方法等同于在end()之后调用了write方法。
req.setTimeout(1,function(){ //故意把时间设置很短,触发超时事件。
console.log('请求超时!');
});
再来一个监听的例子:
req.on('response',function(response){
console.log('headers:'+response.headers);//获取响应头
});
到这里,事件监听,似乎浮出水面了!!!那就是在对象(req)设置(on)监听事件('error'),然后触发事件,调用相应的回调函数。
整段代码如下。

2、还有一个Agent类,后面再说。
三、事件模型介绍
要深入理解Node,那么,就要掌握Node核心:核心API、事件循环、异步、回调。
1、什么是事件呢?

最简单的:鼠标click,键盘key down。
那么往深里说:数据加载load,加载完毕load over。
综合成一句话:事件就是对象自身执行的某种动作,就像,response返回数据了,我就执行data动作去处理数据,触发data事件。
Node的内核是C++编写的,单线程,非阻塞的。非阻塞是因为异步和回调,避免了长I/O操作。那么基于事件模型有什么好处呢?如何好处呢?
2、Events API
首先,看一下Events类的目录结构。

Class: events.EventEmitter

emitter.addListener(event, listener)
emitter.on(event, listener)
emitter.once(event, listener)
emitter.removeListener(event, listener)
emitter.removeAllListeners([event])
emitter.setMaxListeners(n)
emitter.listeners(event)
emitter.emit(event, [arg1], [arg2], [...])
Class Method: EventEmitter.listenerCount(emitter, event)
Event: 'newListener'
Event: 'removeListener'
从目录结构中,我们已经很清楚了Events是怎样的一个类了。在Node中,给我们提供了events.EventEmitter类,因此,有了最基础的事件功能。所有的事件都是有EventEmitter产生的。下面,来看,这个类。
var eventEmitter=require('events').EventEmitter; /* * 事件:事件就是对象自身执行的某种动作,事件有了,那么,我们还需要对象。 * 因此,我们创建一个对象,继承于EventEmitter类。 * */ var util=require('util');//加载工具类模块,尽量使用Node的继承方式,避免js原型继承。 var Upload=function(){ console.log('文件上传对象'); }; //util.inherits(constructor, superConstructor) 构造函数,超类(父类)构造函数 util.inherits(Upload,eventEmitter);//通过util的inherits实现继承。 var upload=new Upload(); //设置事件监听 upload.on('init',function(){ console.log('文件格式、字符集、大小判断....'); }); upload.on('checkOk',function(){ console.log('检测完毕....'); }); upload.on('over',function(){ console.log('上传成功....OK'); }); //触发事件 upload.emit('init'); upload.emit('checkOk'); upload.emit('over');
我们可以在触发事件的时候判断,到哪一步了,触发什么事件。on设置事件监听,emit触发事件。结果是:

整段代码为了不变形,发一张图片吧。

四、如何查看API 文档
估计大伙都会查看API文档,因为Node既包含前端的内容,又包含后端的内容,因此,简单的介绍下API文档的查阅方式。
1、要创建一个服务器,因此,进入点击HTTP。
2、创建web服务器对象。

3、因此,点击进去看。

4、我们查找request事件和server object。

5、点击,查看request事件。

6、可以写程序了:

http.createServer(function(request,response){ //发现这里不知道怎么写 }).listen(3000,'127.0.0.1'); console.log('服务器启动:http://localhost:3000');
7、查看response对象

『伍』 如何获取跨域请求的自定义response headers

AngularJS XMLHttpRequest:$http用于读取远程服务器的数据
$http.post(url, data, [config]).success(function(){ ... });
$http.get(url, [config]).success(function(){ ... });
$http.get(url, [config]).success(function(){ ... });
一、$http.jsonp【实现跨域】
1. 指定callback和回调函数名,函数名为JSON_CALLBACK时,会调用success回调函数,JSON_CALLBACK必须全为大写。
2. 指定其它回调函数,但必须是定义在window下的全局函数。url中必须加上callback。
二、$http.get【实现跨域】
1. 在服务器端设置允许在其他域名下访问
response.setHeader("Access-Control-Allow-Origin", "*"); //允许所有域名访问
response.setHeader("Access-Control-Allow-Origin", ""); //允许www.123.com访问
2. AngularJS端使用$http.get()
三、$http.post【实现跨域】
1. 在服务器端设置允许在其他域名下访问,及响应类型、响应头设置
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods","POST");
response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type");
2. AngularJS端使用$http.post(),同时设置请求头信息
$http.post('',{languageColumn:'name_eu'},{'Content-Type':'application/x-www-form-urlencoded'}).success(function(data){
$scope.instries = data;
});

『陆』 js跳转外部链接带header参数

js跳转:调用时执行跳转,相当于点击了链接. header跳转。

_eader跳转:设置的http协议的重定向头部,浏览器在收到带有重定向头的响应后,会马上去用GET方法请求重定向地址。

_绲慊饕趁婺诘牧唇_ttp://www.hao123.com,(JS代码处理后)点此链接即。

『柒』 node.js createserver获取请求值

方法说明:
该函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数。
语法:

复制代码代码如下:

http.createServer([requestListener])

由于该方法属于http模块,使用前需要引入http模块(var http= require(“http”) )
接收参数:
requestListener 请求处理函数,自动添加到 request 事件,函数传递两个参数:
req 请求对象,想知道req有哪些属性,可以查看 “http.request 属性整合”。
res 响应对象 ,收到请求后要做出的响应。想知道res有哪些属性,可以查看 “http.response属性整合”。
例子:
例子中res指定了响应头,响应体内容为node.js,用end结束。
最后调用listen函数,监听3000端口。

复制代码代码如下:

var http = require('http');
http.createServer(function(req, res){
res.writeHead(200, {'Content-type' : 'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>Hello World</p>');
}).listen(3000);

源码:

复制代码代码如下:

exports.createServer = function(requestListener) {
return new Server(requestListener);
};

阅读全文

与在js中怎么获取响应头相关的资料

热点内容
macbookpro如何修改文件内容 浏览:965
java稳定排序 浏览:53
oppo文件管理的图片 浏览:335
plc编程步数怎么计算 浏览:142
ipad看电脑文件 浏览:935
成都制作pdf文件 浏览:735
怎么样点开电脑里面的网络连接 浏览:755
微信怎么退出账号 浏览:32
w微信开发者工具 浏览:325
数据库还原附加 浏览:713
打包成exe执行文件 浏览:652
信丰营销app有哪些 浏览:463
苹果文件下载项如何下载 浏览:179
ps抠婚纱教程 浏览:203
如何在移动硬盘上隐藏文件夹 浏览:451
瑞虎8老车机怎么刷app 浏览:992
学ui设计要学java吗 浏览:275
淘宝票房数据源怎么调整 浏览:470
iphone5s升级ios卡黑屏 浏览:622
u盘没用的文件删不了怎么办 浏览:561

友情链接