跨域解决IIS7.5问题

时间:2012-06-12 01:39:03

标签: asp.net-mvc-3 iis cross-domain iis-7.5

我正在构建一个可以发布的应用程序但是我遇到了我的ajax调用中的跨域脚本问题。

我正在使用IIS7.5并且我有以下应用程序设置

营销应用程序 - 'www.mydomain.com' - 用作营销网站和注册新业务。我有一个强制任何非www的规则。成为www

业务应用程序 - “https://newbusiness.mydomain.com” - 用于访问他们订阅的服务

API应用程序 - 'https://newbusiness.mydomain.com/api / .......' - 用于业务应用程序进行crud操作

API应用程序是在业务应用程序下运行的应用程序。包含许多安全方法和一些匿名方法。

使用jquery我的营销应用程序试图调用api应用程序时遇到问题。目前,如果我想从我的营销网站调用api,我正在做类似'https://api.mydomain.com/api/whatevermethod'的事情,因为它是跨域的,它失败了。

无论如何,我可以以某种方式将'https://api.mydomain.com/api/whatevermethod'映射为'https://mydomain.com/api/whatevermethod',因为这会让我绕过十字架域名问题。

2 个答案:

答案 0 :(得分:2)

您需要在IIS中允许跨域调用。您可以通过设置Access-Control-Allow-OriginAccess-Control-Allow-Headers

来完成此操作

前:

web.config

中的

<system.webserver>       
   <httpprotocol>
     <customheaders>
       <add name="access-control-allow-origin" value="*" />  
       <add name="access-control-allow-headers" value="content-type" />
     </customheaders>
    </httpprotocol>
 </system.webserver>

取自here

答案 1 :(得分:0)

以防万一,您也从Amila的答案中得到了500错误,这就是整个web.config文件内容的样子

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="access-control-allow-origin" value="*" />
                <add name="access-control-allow-headers" value="content-type" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>