導航:首頁 > 編程語言 > 在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中怎麼獲取響應頭相關的資料

熱點內容
微信打碼賺錢安卓軟體 瀏覽:608
蘋果官換機買什麼版本 瀏覽:979
visio數據模型怎麼用 瀏覽:179
關於駕駛的app 瀏覽:92
多線程編程有什麼特點 瀏覽:453
iso文件系統 瀏覽:116
蘋果932攔截騷擾電話 瀏覽:765
盲盒開箱app有哪些 瀏覽:422
win10激活腳本之家 瀏覽:191
魔鬼作坊工具包 瀏覽:185
ae源文件下載 瀏覽:520
如何將照片內容轉換成pdf文件 瀏覽:137
浙里辦app如何更換手機號碼 瀏覽:244
電子資料文件有哪些 瀏覽:241
猥瑣貓表情教程 瀏覽:599
android音頻文件格式 瀏覽:458
漫畫臉app哪裡可以下載 瀏覽:959
購買歡樂升級歡樂豆 瀏覽:282
學習智能機器人用什麼編程最好 瀏覽:655
蘋果手機如何管控app 瀏覽:633

友情鏈接