chrome提示错误:CAUTION:Provisional headers are shown 解决办法

最近作微信的开发因为前台和后台不再一个地方办公,前台也不会写php和ajax所以就造成了一种我写后台服务,她写前台调用的模式,让她的ajax直接访问我的服务端口,我提供给她数据,类似于写接口一样,于是问题出来了.前台ajax访问请求总是执行error.事例代码如下

前台测试代码index.html:



	
		测试
		
		
	

	
		
		
	

后台模拟数据:


后台显示:

chrome提示错误:CAUTION:Provisional headers are shown 解决办法_第1张图片

前台在chrome中单击ajax按钮之后的显示(明显执行了error 注意chrome中的黄色提示):


chrome提示错误:CAUTION:Provisional headers are shown 解决办法_第2张图片

在firefox中的提示:

chrome提示错误:CAUTION:Provisional headers are shown 解决办法_第3张图片

原来以为项目中的错误是因为前台不擅长ajax造成的,但是自己也写了一个,放在了桌面,没有和apache解析php的目录放在一起,结果也是出现上边的错误,大家可以从firefox中看到提示,我们可以从firefox提示发现原因,因为js跨域访问的问题,我们要允许js的跨域请求,不知道这个说法是不是正确,总之我们要让数据能够正确的被ajax调用.经过修改php程序如下:


此时我们再看前台:

chrome提示错误:CAUTION:Provisional headers are shown 解决办法_第4张图片

很明显,已经得到了数据,我们看看他们头信息

chrome提示错误:CAUTION:Provisional headers are shown 解决办法_第5张图片

返回值:

chrome提示错误:CAUTION:Provisional headers are shown 解决办法_第6张图片

至此我们的数据可以通过ajax获取到了,关键代码

echo header("Access-Control-Allow-Origin:*");
这样我们就可以跨域访问了,具体怎么理解跨域访问,我的理解就是,前台和后台不在一个域的访问.这里面写一点感悟,大家如果遇到类似于这种问题的话,还存在一个问题,就是我怎么能确定ajax是不是真的没有访问到数据那,这时候我们可以在php页面加入一个写入功能,每当有访问的时候写入一个日志文件,通过查看日志文件确定链接是否接收得到,这也是我作微信开发的过程中总结出来的,源程序要放到服务器,并不能像本地一样可以方便的调试信息,所以我们很有必要对一些东西写入日志文件,来判断程序是否正常.一点心得分享给大家.

2015-05-31

最近在优化一个之前的erp同样的提示出现,但是并不是跨域问题,项目使用的extjs,在访问的后台数据量比较大的时候会出现此种情况重新查找资料(http://segmentfault.com/q/1010000000364871)后来对后台数据库查询做了优化,问题解决。主要原因是因为在extjs发出请求的时候,后台因为数据量太庞大,没有及时向应而提示此错误,对查询进行优化后自然就没有啦问题!此为实际遇到的问题,记录一下作为参考。



你可能感兴趣的:(linux,php,jqery)