js 的reload方法怎么传header信息

js 的reload方法怎么传header信息,第1张

1,reload 方法,该方法强迫浏览器刷新当前页面

语法:location.reload([bForceGet])

参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新")

2,replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。

语法: location.replace(URL)

通常使用: location.reload() 或者是 history.go(0) 来做。

此方法类似客户端点F5刷新页面,所以页面method="post"时,会出现"网页过期"的提示。

因为Session的安全保护机制。

当调用 location.reload() 方法时, aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。

如果有这种应用: 需要重新加载该页面,也就是说期望页面能够在服务端重新被创建,期望是 Not IsPostback 的。

这里,location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。

代码: location.replace(location.href)

返回并刷新页面:

location.replace(document.referrer)

document.referrer //前一个页面的URL

不要用 history.go(-1),或 history.back()来返回并刷新页面,这两种方法不会刷新页面。

附:

Javascript刷新页面的几种方法:

复制代码代码如下:

1,history.go(0)

2,location.reload()

3,location=location

4,location.assign(location)

5,document.execCommand('Refresh')

6,window.navigate(location)

7,location.replace(location)

8,document.URL=location.href

自动刷新页面的方法:

1,页面自动刷新:把如下代码加入<head>区域中

复制代码代码如下:

<meta http-equiv="refresh" content="20">

其中20指每隔20秒刷新一次页面.

2,页面自动跳转:把如下代码加入<head>区域中

复制代码代码如下:

<meta http-equiv="refresh" content="20url=http://www.jb51.net">

其中20指隔20秒后跳转到http://www.jb51.net页面

3,页面自动刷新js版

复制代码代码如下:

<script language="JavaScript">

function myrefresh()

{

window.location.reload()

}

setTimeout('myrefresh()',1000)//指定1秒刷新一次

</script>

4,JS刷新框架的脚本语句

复制代码代码如下:

//刷新包含该框架的页面用

<script language=JavaScript>

parent.location.reload()

</script>

//子窗口刷新父窗口

<script language=JavaScript>

self.opener.location.reload()

</script>

( 或 <a href="javascript:opener.location.reload()">刷新</a> )

//刷新另一个框架的页面用

<script language=JavaScript>

parent.另一FrameID.location.reload()

</script>

如果想关闭窗口时刷新或想开窗时刷新,在<body>中调用以下语句即可。

复制代码代码如下:

<body onload="opener.location.reload()">开窗时刷新

<body onUnload="opener.location.reload()">关闭时刷新

<script language="javascript">

window.opener.document.location.reload()

</script>

一、先来看一个简单的例子:

下面以三个页面分别命名为frame.html、top.html、bottom.html为例来具体说明如何做。

frame.html 由上(top.html)下(bottom.html)两个页面组成,代码如下:

复制代码代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>frame </TITLE>

</HEAD>

<frameset rows="50%,50%">

<frame name=top src="top.html">

<frame name=bottom src="bottom.html">

</frameset>

</HTML>

现在假设top.html (即上面的页面) 有七个button来实现对bottom.html (即下面的页面) 的刷新,可以用以下七种语句,哪个好用自己看着办了。

top.html 页面的代码如下:

复制代码代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>top.html </TITLE>

</HEAD>

<BODY>

<input type=button value="刷新1" onclick="window.parent.frames[1].location.reload()"><br>

<input type=button value="刷新2" onclick="window.parent.frames.bottom.location.reload()"><br>

<input type=button value="刷新3" onclick="window.parent.frames['bottom'].location.reload()"><br>

<input type=button value="刷新4" onclick="window.parent.frames.item(1).location.reload()"><br>

<input type=button value="刷新5" onclick="window.parent.frames.item('bottom').location.reload()"><br>

<input type=button value="刷新6" onclick="window.parent.bottom.location.reload()"><br>

<input type=button value="刷新7" onclick="window.parent['bottom'].location.reload()"><br>

</BODY>

</HTML>

下面是bottom.html页面源代码,为了证明下方页面的确被刷新了,在装载完页面d出一个对话框。

复制代码代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>bottom.html </TITLE>

</HEAD>

<BODY onload="alert('我被加载了!')">

<h1>This is the content in bottom.html.</h1>

</BODY>

</HTML>

解释一下:

复制代码代码如下:

1.window指代的是当前页面,例如对于此例它指的是top.html页面。

2.parent指的是当前页面的父页面,也就是包含它的框架页面。例如对于此例它指的是framedemo.html。

3.frames是window对象,是一个数组。代表着该框架内所有子页面。

4.item是方法。返回数组里面的元素。

5.如果子页面也是个框架页面,里面还是其它的子页面,那么上面的有些方法可能不行。

附:

Javascript刷新页面的几种方法:

1 history.go(0)

2 location.reload()

3 location=location

4 location.assign(location)

5 document.execCommand('Refresh')

6 window.navigate(location)

7 location.replace(location)

8 document.URL=location.href

我使用内置$http服务直接同外部进行通信$http服务简单封装浏览器原XMLHttpRequest象

1、链式调用

$http服务能接受参数函数参数象包含用HTTP请求

配置内容函数返promise象具successerror两

$http({

url:'data.json',

method:'GET'

}).success(function(data,header,config,status){

//响应功

}).error(function(data,header,config,status){

//处理响应失败

})

2、返promise象

var promise=$http({

method:'GET',

url:"data.json"

})

由于$http返promise象我响应返用then处理调

使用then特殊参数代表相应象功或失败信息接受两

选函数作参数或者使用successerror调代替

promise.then(function(resp){

//resp响应象

},function(resp){

//带错误信息resp

})

或者:

promise.success(function(data,status,config,headers){

//处理功响应

})

promise.error(function(data,status,hedaers,config){

//处理失败响应

})

then()与其两种主要区别接收完整响应象success()error()则响应

象进行析构

3、快捷get请求

①$http.get('/api/users.json')

get()返HttpPromise象

发送比:delete/head/jsonp/post/put 函数内接受参数具体参照148页

②再发送jsonp请求举例说明: 发送JSONP请求其url必须包含JSON_CALLBACK字

jsonp(url,config) 其config选

var promise=$http.jsonp("/api/users.json?callback=JSON_CALLBACK")

4、$http做函数使用需要传入设置象用说明何构造XHR象

$http({

method:'GET',

url:'/api/users.json',

params:{

'username':'tan'

})

其设置象包含主要键:

①method

:GET/DELETE/HEAD/JSONP/POST/PUT

②url:绝或者相请求目标

③params(字符串map或者象)

键值字符串map或象转换查询字符串追加URL面值字符串JSON序列化

比:

//参数转name=ari形式

$http({

params:{'name':'ari'}

})

④data(字符串或者象)

象包含作消息体发送给服务器数据通发送POST请求使用

AngularJS 1.3始POST请求发送二进制数据要发送blob象简单通使用data参数传递

例:

var blob=new Blob(['Hello world'],{type:'text/plain'})

$http({

method:'POST',

url:'/',

data:blob

})

4、响应象

AngularJS传递给then()响应象包含四属性

◇data

数据代表转换响应体(定义转换)

◇status

响应HTTP状态码

◇headers

函数信息getter函数接受参数用获取应名字值

例用代码获取X-Auth-ID值:

$http({

method: 'GET',

url: '/api/users.json'

}).then (resp) {

// 读取X-Auth-ID

resp.headers('X-Auth-ID')

})

◇config

象用原始请求完整设置象

◇statusText(字符串)

字符串响应HTTP状态文本

5、缓存HTTP请求

默认情况$http服务请求进行本缓存发送单独请求我通向$http请求传入布尔值或者缓存实例启用缓存

$http.get('/api/users.json',{ cache: true })

.success(function(data) {})

.error(function(data) {})

第发送请求$http服务向/api/users.json发送GET请求第二发送同GET请求$http服务缓存取请求结真发送HTTP GET请求

例由于设置启用缓存AngularJS默认使用$cacheFactory,服务AngularJS启自创建

想要AngularJS使用缓存进行更自定义控制向请求传入自定义缓存实例代替true


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11514182.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存