我有一个ASP.Net MVC 4 Website和另一个ASP.Net Web API project.Currently都在不同的域上。我使用amplify.js在我前面的end.Since上使用API,这两个网站都在不同的域上。当我从UI调用我的API时,它总是一个跨域请求(我正在利用CORS实现这一目的。).This导致我进行的每个HTTP API调用都会产生额外的OPTIONS请求,这增加了开销。我也尝试在子域上托管这两个网站,但OPTIONS请求仍然存在,我想摆脱这些额外的请求。
有什么方法可以消除OPTIONS请求吗?
发布于 2013-03-01 15:51:16
有什么方法可以消除OPTIONS请求吗?
您可以使用JSONP而不是CORS。不幸的是,这可能不足以满足您的场景,因为JSONP只能处理GET请求(jQuery的$.ajax方法有此限制)。
或者,如果您将2托管在同一个域中,并且没有违反same origin policy,则可以使用普通的AJAX请求。
发布于 2013-03-01 16:05:58
为了防止跨域请求,源域名和目标域名必须完全相同:主机、域和端口(same origin policy)。但是,您有一些选项可以防止CORS:
我会选择第一种或第三种方式,因为脚本解决方案感觉太笨拙了;)我还建议检查是否真的有必要在不同的域上运行API和网站。OPTIONS头通常不会产生太多开销,因此您可以考虑首先优化代码的其他部分。
也许你可以将网站和API放在一个域中,而只将API的数据库放在另一个服务器上?只是一个想法..。
https://stackoverflow.com/questions/15152942
复制相似问题