随着 html5 的流行,如今已经今非昔比,跨域问题已经不是前几年那种概念了。如果你只是看了3年前的文章,里边的所谓“跨域,jsonp调用”之类的描述,基本上都可以扔掉了。
例如,你可以让你的ashx告诉浏览器对于跨域访问不要拦截返回值,允许客户端获得响应:
同时你的客户端要声明cors,例如对于jQuery for ajax,就是在第一行代码声明一次:
有关 cors 的说明文章有些是很繁琐、依赖其它系统的。实际上你在 ashx 中精确地写上一行代码来允许跨域就行了,先不要用其它的办法。
例如,你可以让你的ashx告诉浏览器对于跨域访问不要拦截返回值,允许客户端获得响应:
1
|
context.Response.AddHeader(
"Access-Control-Allow-Origin"
,
"*"
);
|
同时你的客户端要声明cors,例如对于jQuery for ajax,就是在第一行代码声明一次:
1
|
jQuery.support.cors =
true
;
|
假设ashx 只是用于普通的页面 http GET、POST 下载访问,也就是普通的网页请求,那么你无须考虑跨域问题。因为这类访问 ashx 地方法,即使是跨域,浏览器也是允许的。