首页 新闻 会员 周边 捐助

.net core访问api遇到Provisional headers are shown

0
悬赏园豆:5 [待解决问题]

最近学习.net core时,搭建的小项目,通过angluar范围webapi时,没有反应,于是在ie上看状态吗为200/ok,但是用谷歌浏览器上发现提示“Provisional headers are shown”,Preview和Response都为空,我也上网百度了.net core跨域访问api,没解决,大佬们还有木有办法。

代码如下;

前端

   requestParams.method = "JSONP";
   requestParams.url = "http://localhost:30456/api/login?callback=JSON_CALLBACK";
   requestParams.xhrFields={
    withCredentials: true //配置http跨域请求中携带cookie
   };
   requestParams.params = data;

后台

 //配置跨域处理
            services.AddCors(options =>
            {
                options.AddPolicy("any", builder =>
                {
                    builder.AllowAnyOrigin() //允许任何来源的主机访问
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();//指定处理cookie
                });
            });

控制器:

  [Route("api/[controller]")]
    [EnableCors("any")]
    public class LoginController : Controller

灬丶的主页 灬丶 | 初学一级 | 园豆:3
提问于:2018-05-08 13:21
< >
分享
所有回答(2)
0

你用的是jsonp,本来就能跨域,与CORS的配置无关

dudu | 园豆:29732 (高人七级) | 2018-05-08 13:32

配置了也不影响吧,难道去掉配置就能访问了?

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 13:33

@灬丶: 建议jsonp改为json,通过cors允许跨域

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2018-05-08 13:39

@dudu: 我去试下

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 13:39

@dudu: url需要改吗

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 13:40

@灬丶: 可以去掉callback=JSON_CALLBACK,不去也没影响

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2018-05-08 13:47

@dudu: XMLHttpRequest: 网络错误 0x2efd, 由于出现错误 00002efd 而导致此项操作无法完成。又回到以前的问题了,改成jsonp就没有这

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 13:51

@灬丶: ajax请求有没有加contentType: "application/json;charset=utf-8"?

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2018-05-08 14:08

@dudu: 加了也是一样的

var request = {
  login:function (data) {
   requestParams.method = "json";
   requestParams.url = "http://localhost:30456/api/login";
   requestParams.contentType = "application/json;charset=utf-8";
   requestParams.params = data;
   return RequestService($http, requestParams);
  },

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 14:09

@灬丶: requestParams.method = "json";写错了,应该是getpost

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2018-05-08 14:14

@dudu: 都试过了,还不行,快疯了

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 14:19

@灬丶: 建议提供一下完整的ajax代码

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2018-05-08 14:30

@dudu: /服务
var loginService = angular.module("loginApp",[]);
//请求服务
loginService.factory("loginRequestService", ["$http",function ($http) {
 //请求参数
 var requestParams = {
  method: "",
  url: "",
  contentType: "",
  params:{}
 };
 //$http({requst})
 var request = {
  login:function (data) {
   requestParams.method = "GET";
   requestParams.url = "http://localhost:30456/api/login";
   requestParams.contentType = "application/json;charset=utf-8";
   requestParams.params = data;
   return RequestService($http, requestParams);
  },
 };
 return request;
}]);
//请求服务
function RequestService($http, request) {
 var result = $http(request);
 return result;
}就是这样的

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 14:31

@dudu: net::ERR_CONNECTION_REFUSED

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 14:42

@dudu: 主要是我在西安的时候还可以,回到南京后就不行了。在西安用的是别人移动内网的wifi

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 14:45

@灬丶: 建议在浏览器中看一下request headers是否正常

支持(0) 反对(0) dudu | 园豆:29732 (高人七级) | 2018-05-08 14:48

@dudu: 是好的,在西安的时候还可以,回到南京后就不行了

支持(0) 反对(0) 灬丶 | 园豆:3 (初学一级) | 2018-05-08 14:49
0

题主解决这个问题了没,我也碰到这个问题了

似水阳光 | 园豆:109 (初学一级) | 2019-10-22 21:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册