.net ajax跨域访问报错 5C

我写了一个odsserver.aspx的程序,这个程序相当于一个公用的借口,供大家调用返回json串结果。
但是当一个程序在调用的时候,提示 NO‘access-control-allow-origin’header is present on
the requested resource. 应该是跨域ajax访问出的问题。
前台的这个程序就是.net +js通过ajax方式调用的odsserver.aspx程序,请问下我该具体怎么处理这个问题呢?

7个回答

changwen313
changwen313 大哥,我访问不了这个地址。新疆的网络blog开头的都打不开。
大约 2 年之前 回复

贴给你

 1. 问题描述

在js中使用ajax请求在网页控制台下打印以下错误信息:

XMLHttpRequest cannot load http://192.168.2.46:8000/account/getjson/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access.
本人的ajax代码如下

var jsontree = [];
$.ajax({
    url: "http://192.168.2.46:8000/account/getjson/",
    type: "GET",
    dataType: 'JSON',
    success: function(result){
        jsontree = result;
    }
});

2. 解决方法

将上面的dataType: 'JSON'替换为dataType: 'JSONP'即可。

OK, Enjoy it!!!
changwen313
changwen313 哥,刚试了,这样改是没有没有任何效果。
大约 2 年之前 回复

在odsserver.aspx所在的网站的根目录添加一个叫做crossdomain.xml的文件,内容为:
<?xml version="1.0" ?>





重启server,重试

 <?xml version="1.0" ?>
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only"/>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
compbookjunkie
compbookjunkie 回复changwen313: 这个文件不需要引用到程序里面,直接放到odsserver.aspx所在网站的根目录,只是声明一下这个网站的资源可以被跨域访问。如果还不行,可以试试http://blog.sina.com.cn/s/blog_6f3749920102v22p.html因为不同浏览器处理的方式不一样。
大约 2 年之前 回复
changwen313
changwen313 你这个xml是怎么引用到程序里的? 单独建一个文件没有用的。
大约 2 年之前 回复

如果还不行可以试一下:
var jsontree = [];
$.ajax({
url: "http://192.168.2.46:8000/account/getjson/",
type: "GET",
dataType: 'JSON',
success: function(result){
jsontree = result;
}
});
将上面的dataType: 'JSON'替换为dataType: 'JSONP'

设置header
access-control-allow-origin:*

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!