ASP.NET网站中实现Ajax的跨域请求
2021-01-30 12:14
标签:tor 端口 ash 报错 price tps 完全 ssr ack 什么是同源策略 什么是跨域请求 1).Cookie、LocalStorage 和 IndexDB 无法读取 URL 说明 是否允许通信 跨域请求的方法 1)JSONP JSONP格式 一般情况系我们不用制定Callback函数的名称,系统会自动生成一个长字符串作为该Callback的唯一标识。 在客户端的前端通过Ajax进行请求 2)跨域资源共享(CORS) Access-Control-Request-Method ASP.NET网站中实现Ajax的跨域请求 标签:tor 端口 ash 报错 price tps 完全 ssr ack 原文地址:https://www.cnblogs.com/xiewangfei123/p/13196093.html
同源策略是浏览器的一个安全功能,不同源(同源是指协议、端口和域名完全相同)的客户端脚本在没有明确授权的情况下不能读写对方资源。只要网站的协议名(Protocol)、主机名(Host)、端口名(Port)这三个中任意一个不同,网站之间的资源请求就会受到同源策略的限制
凡是不符合同源策略的请求,都属于跨域请求。为了保证安全性,通常浏览器会对跨域请求作出限制。
通常情况下限制以下几种行为:
2).DOM 和JS对象无法获得
3).AJAX请求不能发送
常见跨域场景http://www.domain.com/a.js
http://www.domain.com/b.js 同一域名,不同文件或路径 允许
http://www.domain.com/lab/c.js
http://www.domain.com:8000/a.js
http://www.domain.com/b.js 同一域名,不同端口 不允许
http://www.domain.com/a.js
https://www.domain.com/b.js 同一域名,不同协议 不允许
http://www.domain.com/a.js
http://192.168.4.12/b.js 域名和域名对应相同ip 不允许
http://www.domain.com/a.js
http://x.domain.com/b.js 主域相同,子域不同 不允许
http://domain.com/c.js
http://www.domain1.com/a.js
http://www.domain2.com/b.js 不同域名 不允许
通常情况下我们在使用Ajax请求时,会使用JSON格式的字符串进行信息的传递,JSON和JSONP是完全不同的内容,在JSONP的字符串中,通常比JSON格式的字符串多了一个CallBack的函数名。
JSON格式{
"code":"1991",
"price":1991,
"tickets":5
};
flightHandler(
{
"code":"1991",
"price":1991,
"tickets":5
}
);
要解决跨域问题,在ASP.NET服务器端,我们通常使用一般处理文件来对请求进行响应,如下所示:public class ServerResponseHandler : IHttpHandler
{
List
相关源码下载地址
JSONP只支持GET请求,不支持POST请求。
跨域资源共享(Cross-Origin Resource Sharing)定义了一重跨域访问的机制,可以让Ajax实现跨域问题,该功能的实现只需服务器发送一个响应标头即可。
Access-Control-Request-Headers
文章标题:ASP.NET网站中实现Ajax的跨域请求
文章链接:http://soscw.com/index.php/essay/49104.html