AJAX跨域请求数据,不知道是正常不正常也不知道哪里问题了

禁用F3 2018-03-31 10:05:28
服务端是WebAPI,客户端用ajax请求获取token,结果出现这样奇怪的问题,ajax直接报错,看网络里面请求又成功。
不知道如何分析和解决了。


服务端有做下面这些。

web.config文件

<!--配置支持跨域-->
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
</customHeaders>
</httpProtocol>
<!--配置支持跨域结束-->


WebApiConfig.cs文件

// Web API 配置和服务
config.EnableCors();

Startup.cs文件

public class Startup
{
public void Configuration(IAppBuilder app)
{
// 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888
ConfigAuth(app);

HttpConfiguration config = new HttpConfiguration();
WebApiConfig.Register(config);
app.UseCors(CorsOptions.AllowAll);
app.UseWebApi(config);
}
public void ConfigAuth(IAppBuilder app)
{
OAuthAuthorizationServerOptions option = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"), //获取 access_token 授权服务请求地址
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1), //access_token 过期时间
Provider = new SimpleAuthorizationServerProvider(), //access_token 相关授权服务
RefreshTokenProvider = new SimpleRefreshTokenProvider() //refresh_token 授权服务
};
app.UseOAuthAuthorizationServer(option);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
}

...全文
502 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
whilewk 2018-04-13
  • 打赏
  • 举报
回复

你有两个*的Response头,,应该是你配置文件有一个跨域配置,程序中又加了一个Response.XXXXXXX.handler('','*')
  • 打赏
  • 举报
回复
配置型的貌似不需要声明config.EnableCors(),声明了这个貌似就走dll精细化的那个策略了
wang_peng_yl 2018-04-02
  • 打赏
  • 举报
回复
方法1: 换浏览器吧,不可能所有的浏览器都失败, 方法2:饶过这层安全机制,比如你用asp.net 写的,先把访问写在C#代码里,然后用C#代码访问WebApi,相当别扭 跨域问题到目前我还没有遇到完美的方案,因为浏览器发展太快。 config.EnableCors();这方法不是万能的 什么jsonp,都用过,只能解决一部分,如果你用了nginx,可以在nginx上处理
  • 打赏
  • 举报
回复
就好象邯郸学步这个成语所说的一样,我们要学习原理,而不是亦步亦趋。 你只有自己从调试中看到重复 Access-Control-Allow-Origin 才能把技术变成自己的东西,否则就会邯郸学步不断遇到此类问题。
  • 打赏
  • 举报
回复
浏览器上的提示很清楚了,不行就那个翻译软件看看人家都写明白了,你的授权域写重复了。
禁用F3 2018-03-31
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
ajax 不允许跨域 所谓跨域,是指:域名不同 或 ip不同 或 端口号不同
我懂什么是跨域 EnableCors我已经开启了跨域支持了的
xuzuning 2018-03-31
  • 打赏
  • 举报
回复
ajax 不允许跨域 所谓跨域,是指:域名不同 或 ip不同 或 端口号不同
  • 打赏
  • 举报
回复
浏览器给你的错误提示写的很清楚了,自己看看说的是什么。

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧