我有一个ASP.Net MVC 4 Website
和另一个ASP.Net Web API
项目。目前两者都托管amplify.js
在不同的域上。我用来在前端使用 API。由于两个网站都托管在不同的域上,所以当我API
从这个目的。)。这会导致我每次调用都会产生额外的请求,这会增加开销。我还尝试在子域上托管这两个网站,但请求仍然存在,我想摆脱这些额外的请求。UI
CORS
OPTIONS
HTTP API
OPTIONS
有什么办法可以消除这个OPTIONS
请求吗?
我有一个ASP.Net MVC 4 Website
和另一个ASP.Net Web API
项目。目前两者都托管amplify.js
在不同的域上。我用来在前端使用 API。由于两个网站都托管在不同的域上,所以当我API
从这个目的。)。这会导致我每次调用都会产生额外的请求,这会增加开销。我还尝试在子域上托管这两个网站,但请求仍然存在,我想摆脱这些额外的请求。UI
CORS
OPTIONS
HTTP API
OPTIONS
有什么办法可以消除这个OPTIONS
请求吗?
有什么方法可以消除 OPTIONS 请求?
您可以使用JSONP
代替 CORS。不幸的是,这可能不足以满足您的方案,因为 JSONP 仅适用于 GET 请求(jQuery 的$.ajax
方法有此限制)。
或者,如果您将 2 托管在同一域上并且您没有违反same origin policy
,则可以使用正常的 AJAX 请求。
为了防止跨域请求,源域和目标域必须完全相同:在主机、域和端口中(同源策略)。但是,无论如何,您有一些选项可以防止 CORS:
我会选择一种方式或方式三种方式,因为脚本解决方案感觉太笨拙了;)我还建议检查是否真的有必要在不同的域上运行 API 和网站。OPTIONS 标头通常不会造成太多开销,因此您可以考虑先优化代码的其他部分。
也许您可以将网站和 API 放在一个域中,而仅将 API 的数据库放在另一台服务器上?只是一个想法...