跨域配置的疑问

stevenjin 2018-05-07 12:13:40
我用如下方法做了跨域配置,用自己的电脑在不同的域是可以访问的(开了2个VS项目访问)。
但在局域网内的另一台电脑访问时,取不到数据(到达不了jquery的success)。

一、配置方法:
1.在Global.asax.cs中添加:
protected void Application_BeginRequest(object sender, EventArgs e)
{
//origin头主要是跨域相关
//作为HTTP请求方法之一的OPTIONS请求方法的主要用途有两个:
// 1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
// 2、用来检查服务器的性能。例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全
if (Request.Headers.AllKeys.Contains("Origin")&&Request.HttpMethod=="OPTIONS")
{
Response.Flush();//缓存完毕后发送到客户端
}
}


2.在<HttpProtocol>节点中添加:
 
<httpProtocol>
<!--跨域配置开始-->
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<!--支持全域名访问,不安全,部署后需要固定限制为客户端网址-->
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
<!--支持的http 动作-->
<add name="Access-Control-Allow-Headers" value="Authorization,Content-Type,X-Requested-With" />
<!--<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />-->
<!--<add name="Access-Control-Allow-Headers" value="Content-Type,X-Requested-With,token" />-->
<!--响应头 请按照自己需求添加 这里新加了token这个headers-->
<add name="Access-Control-Request-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
<!--允许请求的http 动作-->
</customHeaders>

<!--跨域配置结束-->
</httpProtocol>


二、访问方法
<Html>
<head>
<script src="Scripts/jquery-1.10.2.js"></script>
--基于get传递多个参数--
<script>
$(function () {
$.ajax({
type: "get",
url: "http://localhost:51647/api/GetParms",
data: { id: 1, name: "Jim", bir: "1988-09-11" },
beforeSend: function (XHR) {
debugger
var token = '9463B95C74FB79E56AA8E999658671AF287442894F30957C082EDF66DC6BE04E9EA16B776E50451980577B34543CB25E76022CDACADA75A43CBC6A1D9B83DC3155820';
XHR.setRequestHeader("Authorization", "Token " + token);
},
success: function (data, status) {
debugger
if (status == "success") {
alert(data);
}
}
});
}
)
</script>
</head>
</Html>
...全文
887 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenjin 2018-05-15
  • 打赏
  • 举报
回复
就用我那个没问题
stevenjin 2018-05-07
  • 打赏
  • 举报
回复
嗯,我是在另外一台电脑上访问的,就写了个简单的Html格式的文件访问的,不知是不是这个原因。 而且,我没有发布到IIS,就是开发VS做服务的。 并没有报错,反正就一直在beforeSend进进出出。 我用自己的电脑,随便开个网页不用同上域名,端口都能访问的。
  • 打赏
  • 举报
回复
<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>   
这种我是验证过可以的
  • 打赏
  • 举报
回复
F12看下报的异常是什么

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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