AJAX跨越获取不了数据解决方法 http://pan.baidu.com/s/1i432xq1

 

怎么算是跨域:

1:域名不一致

2:域名一直,端口不一致

3:一个程序用域名,一个程序用IP

 

AJAX跨越请求报错一处理

XMLHttpRequest cannot load http://localhost:9999/Home/Save. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:29949' is therefore not allowed access.

第一种方法:配置文件加以下代码:

1  <!--start处理跨越安全性问题-->
2     <httpProtocol>
3       <customHeaders>
4         <add name="Access-Control-Allow-Origin" value="*" />
5         <add name="Access-Control-Allow-Headers" value="Content-Type" />
6         <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
7       </customHeaders>
8     </httpProtocol>
9     <!--end处理跨越安全性问题-->

 

 第二种解决方法在控制器加上

Response.AddHeader("Access-Control-Allow-Origin", "*");

  这里  Response.AddHeader("Access-Control-Allow-Origin", "*");;这句很重要,没有这句,前端接收不到返回的数据。

Access-Control-Allow-Origin是HTML5中定义的一种服务器端返回Response header,

用来解决资源(比如字体)的跨域权限问题。它定义了该资源允许被哪个域引用,

或者被所有域引用(google字体使用*表示字体资源允许被所有域引用),

但是在真正的产品中,是不会用*的。这里只是好方便演示。

 

posted on 2017-03-28 18:04  高达  阅读(414)  评论(0)    收藏  举报

导航