ajax请求的问题,谷歌浏览器的警告提示Provisional headers are shown

不太了解百度后台是什么情况,我也只是做一个简单的搜索功能用了跨域,。我看数据请求成功了,数据已经返回。但是谷歌浏览器总是出现这种情况(友情提示:愿意回答的大神就请帮着看看,不愿意帮助的也请别乱踩,别干缺德事!!)
图片描述

图片描述

还有就是我在hbulider下面打开一个html请求apache下面的php文件,也会出现类似情况。代码贴上
$.ajax({

            type: 'GET',
            url: 'http://127.0.1.0/ser.php',
            contentType: 'application/json;charset=utf-8',
            dataType: 'jsonp',
            jsonp: 'callback' // 重写后台接收回调函数的数据名称
        })
        .done(function(data){
            console.log(data);
        })
        .fail(function(ec){
            console.log(ec);
        });

php:
<?php

header("Cache-Control: no-cache");
header('Content-Type: text/html;charset=utf-8');
header('Access-Control-Allow-Origin:*'); // *代表允许任何网址请求
header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); // 允许请求的类型
header('Access-Control-Allow-Headers: Content-Type,Content-Length,Accept,X-Requested-with, Origin'); // 设置允许自定义请求头的字段 
$cb = $_GET['callback'];
echo $cb.'(5)';

?>

阅读 5.2k
4 个回答

浏览器端跨域,必须服务端明确指示允许的来源才可以,否则会被跨域策略限制。

例如:自己控制的服务器,在全局输出里加一个header

Access-Control-Allow-Origin:* 

用 * 则不限制来源域名,也可以指定域名
否则不能用ajax访问。
jsonp的访问策略,是以script模式插入到文档流中,请求回来会将数据包裹在callback函数里,从而实现传输数据的目的

window.mycallback=function(){
    console.log(arguments)
}
var script=document.createElement('script')
script.src="支持jsonp的url?callback=mycallback";
document.body.append(script)

===================================//

你后面这两段代码没问题呀,控制台是可以打印出 请求回来的数据的
同源不同源效果都一样
图片描述
图片描述
图片描述

用隐身模式打开,可能是因为你安装的插件给你拦截了。

我猜测:

Provisional headers are shown

这个只是隐藏了一些私密信息,不影响,不是报错;

譬如 cookie 里常有用户身份信息,这个信息,逻辑是不应该给用户看到的,所以 chrome 隐藏了,当然,你要看也不是不行,用抓包工具就能看到,windows 下,可以尝试 fiddler .

我也遇到过此种情况,应该是谷歌浏览器的问题,你自己可以去淘宝或者别的网站去看看他们的请求也有这种情况。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题