C#ASP.NETMVC配置允许跨域访问

 https://blog.csdn.net/zhoucheng05_13/article/details/53580683

当使用ajax访问远程服务器时,请求失败,浏览器报如上错误。这是出于安全的考虑,默认禁止跨域访问导致的。

一、什么是跨域访问

举个栗子:在A网站中,我们希望使用Ajax来获得B网站中的特定内容。如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的。跨域访问违反了同源策略,同源策略的详细信息可以点击如下链接:Same-origin_policy 
总而言之,同源策略规定,浏览器的ajax只能访问跟它的HTML页面同源(相同域名或IP)的资源。

二、解决方案

常用的解决方案有两种,可以分为客户端解决方案和服务器端解决方案。先说服务器端解决方案:

  • 服务器端解决方案 
    在服务器端的filter或者servlet里面添加 
    response.setHeader("Access-Control-Allow-Origin", "*"); 
    “Access-Control-Allow-Origin”表示允许跨域访问,“*”表示允许所有来源进行跨域访问,这里也可以替换为特定的域名或ip。 
    很显然,这种方式对非网站拥有人员来说是不能做到的。而且此种方式很容易受到CSRF攻击。

  • 客户端解决方案

$(function($){ var url = 'http://*****/index'; $.ajax(url, { data: { 'cityname': '成都', 'date': '2016.12.12' }, dataType: 'jsonp', crossDomain: true, success: function(data) { if(data && data.resultcode == '200'){ console.log(data.result.today); } } });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

将ajax请求中的dataType属性设置为“jsonp”,jsonp是专门用来解决跨域访问而诞生的。

 

 

 

https://www.cnblogs.com/lovling/p/6397039.html

在web.config文件中的 system.webServer 节点下 增加如下配置

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/31656

(0)
上一篇 2024年7月16日
下一篇 2024年7月16日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml