post请求得到的jsp页面,谷歌浏览器 post请求刷新弹出提示框,每个浏览器都这样,怎么才能让它不询问直接刷新?

15:09 提问
jsp页面使用ip打开页面错乱,求大神们解答
我做完的jsp页面,使用localhost/项目名 打开没有问题,但是用ip/项目名 打开页面会错位 我主页用了ifream,然后css中right,left都失效了
测试浏览器:火狐,谷歌下不会出现这个问题,但是ie9,360浏览器,QQ浏览器,猎豹浏览器会出现这个问题
跪求求大神给出解决方案
按赞数排序
应该是兼容模式和非兼容模式引起的问题。你可以用ie9在localhost和ip下,按F12看看都运行在哪种模式下。
如果是兼容模式引起的,那就加上下面类似的强制运行在一种模式下。
&meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" /&
Jquery版本1.8.2
我觉得是css和js没有加载上。。。。我是这么写的,还在src里加过&%=basePath%&都不可以0.0
F12调出浏览器开发工具看看资源都加载下来了吗。。或者用httpwatcher
谢谢各位,问题解决了0.0,document type改成下面的就好了0.0
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
7429关注|1111收录
206关注|121收录
3301关注|199收录
其他相似问题&幽默笑话百态军事探索娱乐女性健康旅游互联网&&傲游浏览器怎么设置页面自动刷新?
操作如上图所示,右键点击傲游浏览器中想要自动刷新的页面标签,在弹出的菜单中找到最底下的&自动刷新&,随后自定义自动刷新的时间就可以了。&  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。&&&&&&&王朝美图& 03:10:53&&&&&&&转载本文&UBB代码&HTML代码复制到剪贴板...&更多内容··········&&&&频道精选
&&&网友关注··········&&热点推荐&01&&02&&03&&04&&05&&06&&07&&08&&09&&10&&&&王朝女性&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝分栏&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝编程&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝导购&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝其他&&|&&|&&|&&|&&|&&|&&&&2005-&&版权所有&不知道是我抓包错了,还是我理解的问题,做一个网页的插件,用的是firebreath开发的,把账号密码的post上去,执行插件,刷新页面后没有登陆,这是post的代码
std::string&post(LPCWSTR&website,LPCWSTR&page,string&data,LPCWSTR&spare=NULL)
//post函数
DWORD&dwSize&=&0;
&&&&DWORD&dwDownloaded&=&0;
&&&&LPSTR&pszOutBuffer&=&NULL;
&&&&HINTERNET&&hSession&=&NULL,
&&&&&&&&&&&&&&&hConnect&=&NULL,
&&&&&&&&&&&&&&&hRequest&=&NULL;
&&&&BOOL&&bResults&=&FALSE;
&&&&hSession=WinHttpOpen(L&User-Agent&,WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYPASS,0);
&&&&if(hSession)
&&&&&&&&hConnect=WinHttpConnect(hSession,website,INTERNET_DEFAULT_HTTP_PORT,0);
&&&&if(hConnect)
&&&&&&&&hRequest=WinHttpOpenRequest(hConnect,&L&POST&,page,L&HTTP/1.1&,&WINHTTP_NO_REFERER,WINHTTP_DEFAULT_ACCEPT_TYPES,0);
&&&&LPCWSTR&header=L&Content-type:&application/x-www-form-urlencoded\r\n&;
&&&&SIZE_T&len&=&lstrlenW(header);
&&&&WinHttpAddRequestHeaders(hRequest,header,DWORD(len),&WINHTTP_ADDREQ_FLAG_ADD);
&&&&if(hRequest)
//string&data=&a=2&;
&&&&const&void&*ss=(const&char&*)data.c_str();
&&&&bResults=WinHttpSendRequest(hRequest,&NULL,NULL,const_cast&void&*&(ss),data.length(),&data.length(),&0&);
&&&&&&//&bResults=WinHttpSendRequest(hRequest,WINHTTP_NO_ADDITIONAL_HEADERS,&0,WINHTTP_NO_REQUEST_DATA,&0,&0,&0&);
&&&&if(bResults)
&&&&&&&&bResults=WinHttpReceiveResponse(hRequest,NULL);
if&(!bResults)
cout&&&&&Error&&&&&&GetLastError()&&&&&&has&occurred.&&&&&
&&&&if(bResults)
&&&&&&&&do
&&&&&&&&&&&&//&Check&for&available&data.
&&&&&&&&&&&&&dwSize&=&0;
&&&&&&&&&&&&&if&(!WinHttpQueryDataAvailable(&hRequest,&&dwSize))
&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&printf(&&Error&%u&in&WinHttpQueryDataAvailable.\n&,GetLastError());
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&}
&&&&&&&&&&&&&if&(!dwSize)
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&pszOutBuffer&=&new&char[dwSize+1];
&&&&&&&&&&&&&&if&(!pszOutBuffer)
&&&&&&&&&&{
&&&&&&&&&&&&printf(&Out&of&memory\n&);
&&&&&&ZeroMemory(pszOutBuffer,&dwSize+1);
&&if&(!WinHttpReadData(hRequest,&(LPVOID)pszOutBuffer,&&dwSize,&&dwDownloaded))
&&&&&&&&&&&&&&&&&&&&&printf(&&Error&%u&in&WinHttpReadData.\n&,&GetLastError());
&&&&&&&&&&&&&&&&&&&printf(&%s&,&pszOutBuffer);
&&&printf(&\n&);
&&&&&&&&&&&&&//&&delete&[]&pszOutB
&if&(!dwDownloaded)
&&&&&&&&&&&&&&&&&&&
}&while&(dwSize&&&0);
if&(hRequest)&WinHttpCloseHandle(hRequest);
if&(hConnect)&WinHttpCloseHandle(hConnect);
if&(hSession)&WinHttpCloseHandle(hSession);
return&pszOutB
post模拟登陆后浏览器不会自己带着这个网页的cookie访问吗?
回复讨论(解决方案)
还有就是我post之后返回值是页面的源码,是因为代码问题吗
WinHttpOpen&这些API使用的cookie&系统是不可能传给浏览器的,&需要你获取服务器返回的cookie&再设置给浏览器
http://blog.csdn.net/visualeleven/article/details/6656224
希望对你有所帮助~
要保证以下条件才能达成你的目的:
1.你说的浏览器是IE,而不是Chrome或Firefox
2.你的这段代码要在IE进程内运行,如果你写的是IE插件或是网页上的Activex控件,都能满足这个要求。
3.POST应该是成功的
4.关键,换用Wininet实现,而不是WinHTTP,因为WinHTTP是会话隔离的。而Wininet并非会话隔离,由于IE内部也是通过Wininet来访问WEB服务器,如果使用Wininet进行POST登录,获取到的Cookie是会自动共享给同进程中的IE的。
要保证以下条件才能达成你的目的:
1.你说的浏览器是IE,而不是Chrome或Firefox
2.你的这段代码要在IE进程内运行,如果你写的是IE插件或是网页上的Activex控件,都能满足这个要求。
3.POST应该是成功的
4.关键,换用Wininet实现,而不是WinHTTP,因为WinHTTP是会话隔离的。而Wininet并非会话隔离,由于IE内部也是通过Wininet来访问WEB服务器,如果使用Wininet进行POST登录,获取到的Cookie是会自动共享给同进程中的IE的。
谢谢大大,有几个问题想问下,1.Chrome或Firefox浏览器实现不了吗?
2.可以使用winhttp实现,然后成功post接收cookie值然后给网页吗?
Chrome或Firefox底层没有使用Wininet,所以它不会自动把Cookie共享给浏览器。
当然自行实现也是可以的,比如编写Chrome或Firefox的浏览器插件,当WinHttp进行POST请求成功后把获取到的Cookie通过Chrome或Firefox提供的API设置进去。
在IE上也可以用winhttp实现,同样,编写IE插件,进行POST请求成功后需要把Cookie提取出来,然后用InternetSetCookie、InternetSetCookieEx给IE浏览器设置Cookie。
Chrome或Firefox底层没有使用Wininet,所以它不会自动把Cookie共享给浏览器。
当然自行实现也是可以的,比如编写Chrome或Firefox的浏览器插件,当WinHttp进行POST请求成功后把获取到的Cookie通过Chrome或Firefox提供的API设置进去。
在IE上也可以用winhttp实现,同样,编写IE插件,进行POST请求成功后需要把Cookie提取出来,然后用InternetSetCookie、InternetSetCookieEx给IE浏览器设置Cookie。
大大最后问个问题,如果别人调用我这个插件,只给我网页地址,让我从中网页中抓到源码,取到input的name和value,然后传给我post的网页地址和账号密码的内容,将账号密码和input的内容一起post过去,能适用于多个网站的自动登陆吗,例如这样
plugin().autologin(&/login&,&/login&,&vwriter=test_user2010&,&vpassword=t123456&,&&,&&,&&,&&,&&);
那样需要为不用的网站写不同的实现代码,因为大多数情况下不同的网站登录的时候POST的内容都不相同
那样需要为不用的网站写不同的实现代码,因为大多数情况下不同的网站登录的时候POST的内容都不相同
大大,登陆除了要账号密码,还有一些网页中input的隐藏值,除了这些post还要什么内容
那样需要为不用的网站写不同的实现代码,因为大多数情况下不同的网站登录的时候POST的内容都不相同
例如http请求头,需要根据不同的网站重新去抓取填写,还是像上面代码那样就可以了,我看到有些post的代码会把抓包的请求头一点不差的写一遍,有些post就像我帖子最先贴的代码那样只是用到了其中一部分,跟http请求头有关吗
要针对不同的网站来分析,能否成功主要是和POST的内容有关,当然少数网站也对请求头有严格的检查。有的网站POST的时候除了用户名密码,还有一大堆乱七八糟的字符串,这些字符串是通过随机值使用各种算法计算出来的,有的网站POST的密码都是加密过的,而各个网站加密算法也不相同,所以很难写一套代码就适用于所有的网站
你可以尝试一下做淘宝、京东的POST登录,看看他们POST的内容有什么区别,除了账号密码还有什么东西
你可以尝试一下做淘宝、京东的POST登录,看看他们POST的内容有什么区别,除了账号密码还有什么东西
好的。。谢谢大大简单的解决jsp页面css的IE、firefox、chrome等浏览器兼容问题-S8站长门户浏览器缓存机制及一些缓存问题解决方法
http://bbs.csdn.net/topics/ &浏览器缓存机制
/p-.html &浏览器缓存的一些问题的处理方法
1.google Chrome 缓存 一般在 ...\AppData\Local\Google\Chrome\User Data\Default\Cache
2.Firefox浏览器缓存文件夹地址:
& & 在firefox地址栏输入about:cache,会显示缓存的文件夹地址,有两个, 一般为...\AppData\Local\Mozilla\Firefox\Profiles\m0awsqac.default\Cache & & &&与...\AppData\Local\Mozilla\Firefox\Profiles\m0awsqac.default\Cache2
第一部分:浏览器访问机制
浏览器访问机制,到底是先访问浏览器的缓存还是先访问服务器
1. last-modified/Etag
Last-Mondified: 最后一次修改时间&
Etag: 资源的状态唯一标识(每个资源的etag都不同,例如img,js,css。。。。)&
Expires: 指定资源在浏览器缓存中的过期时间 (需要在服务端设定)&
如果响应HEAD 没有expire,只有last-modified/Etag,则浏览器访问资源机制如下:
第一次请求URL:
url请求-&访问服务器-&服务器按请求处理返回数据及响应-&浏览器接收到服务器信息,将资源缓存在本地目录中,同时保存文件的响应信息如last-modified/Etag等
第二次请求相同URL:
url请求(浏览器会像服务器发送if-modified-since与if-none-match报头,实际为第一次请求的last-modified与tag)& 访问服务器该资源是否在时间内没被修改过-&若无,服务器返回304(not modified),数据内容为空-&浏览器自动从缓存目录中读取资源
小结:使用Last-Modified/Etag 可以减少传输成本,但不会减少http请求&
2.文件加上expire
浏览器会先检查缓存中的文件,没有过期,就直接使用缓存中的文件,从而不会发送http请求,只会请求一次主文档
注: 浏览器一般性加载文件顺序 & js-& css -& 图片,(多个js或css 按照顺序加载)
(以下测试数据来自互联网)& [22:13:32.947] HTML Start& [22:13:32.947] normal inline script run time& [22:13:34.904] normal external script run time& [22:13:35.775] [body] normal external script run time& [22:13:35.789] [body end] normal external script run time& [22:13:35.789] HTML End& [22:13:35.791] deferred inline script run time& [22:13:35.791] deferred external script run time& [22:13:35.793] DOMContentLoaded& [22:13:38.144] images[0] onload& [22:13:38.328] images[1] onload& [22:13:39.105] images[2] onload& [22:13:39.105] images[3] onload& [22:13:39.106] window.onload&
第二部分:一些浏览器缓存问题的解决方案
1.GET请求缓存处理,不想要缓存GET请求?
浏览器会缓存GET请求,不会缓存POST请求,因此解决为:
方法1:GET请求URL后加随机数,让服务器认为是不同的请求,如:&/index.jsp?class=articele&page=5&t&+new Date().getTime();
方法2:在ajax发送请求前加上xmlHttpRequest.setRequestHeader(&If-modified-since&,&0&);
方法3:在ajax发送请求前加上xmlHttpRequest.setRequestHeader(&Cache-Control&,&no-cache&);
方法4:若为jquery ajax, 设置ajax属性cache:(注意:cache属性对post没有用,对get才有用)
方法5:在服务器端响应请求时加上response.setHeader(&Cache-Control&,&no-cache,must-revalidate&);
方法6:使用POST代替GET,浏览器不会对POST做缓存
注意:为什么cache属性对post没有用,对get才有用?
因为1.浏览器缓存url请求原理就是判断url是否相同,url相同则读取缓存,url不相同则读取服务器
2.使用GET方式提交url类似&/index.jsp?class=articele&page=5“,而POST方式提交url类似/index.jsp,参数是在请求 &head里的,不在url上,请求参数url始终相同
3.jquery ajax GET方式提交: data: &t=& + new Date().getTime(), &或者 data:{&t&: new Date().getTime()}或者cash:false都是在请求后面加上不同的参数,cach:false会启动 生成参数附加在url请求里,因此浏览器认为是不同的请求,就重新请求服务器
2.防止JSP动态页面内容被缓存?
方法:在JSP页面里
response.setHeader(&expires&,&sat,6 May :00 GMT&);//将expire时间设置为一个过去时间或0,-1等
response.setHeader(&cache-control&,&no-store,no-cache,must-revalidadate&);//设置HTTP/1.1 cache-control头
response.addHeader(&cache-control&, &post-check=0,pre-check=0&);//设置IE 扩展HTTP/1.1 no-cache header
response.setHeader(&Pragma&, &no-cache&);//设置标准HTTP/1.0 no-cache header
2.防止html页面被缓存?(jsp也适用)
方法:html页面里
1.若在jsp页面里&&%response%&&添加页面过期 + &&meta http-equiv&&添加不过期,则页面过期
2.若在jsp页面里&&%response%&&添加页面不过期 + &&meta http-equiv&&添加过期,则页面不过期
&meta http-equiv=&pragma& content=&no-cache&&
&meta http-equiv=&cache-control& content=&no-cache&&
&meta http-equiv=&expires& content=&0&&
3.cache-control参数说明:
a.max-age=&&指示客户机可以接受生存期小于指定时间的响应,以s为单位,在max-age规定的秒数内,浏览器将不会发送对应的请求到服务器,数据由缓存直接返回,超过这一时间段才进一步由服务器决定是返回新数据还是仍由缓存提供。 b.public 指示响应可被任何缓存区缓存;
c.private 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理,这允许服务器描述当用户的部分响应效益,此响应消息对于其他用户的请求无效;
d.no-cache 指示请求或响应消息不能缓存;
e.no-store用于防止重要的信息被无意发布,在请求消息中发送将使得请求和响应消息都不缓存;
f.min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应;当前时间加上指定时间内,浏览器不会发送消息到服务器
g.max-stale:指示客户机可以接收超出超时期间的响应消息,如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
本分类共有文章32篇,更多信息详见
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";
/*爱悠闲底部960*75*/
var cpro_id = "u1888128";

我要回帖

更多关于 浏览器测试post请求 的文章

 

随机推荐