我在开发环境中使用代理,因为我想在使用仅适用于localhost的“编辑并继续”功能时使用真实域。
我已使用自定义主机在本地计算机上配置了www.site.com
。 (简单的html页面)
我有这个应用程序:localhost:9090
这是我在本地电脑上的asp.net mvc应用程序。
www.site.com
通过ajax cors致电localhost:9090
,但localhost无法使用域“ .site.com ”创建Cookie。
所以,我创建了widgets.site.com
,其自定义主机作为localhost:9090
的反向代理,因此我可以继续使用编辑并继续功能。
我的localhost如何将cookie设置为通配符域“ .site.com ”? (请记住,widgets.site.com
是localhost:9090
)
这是反向代理:
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:9090/{R:1}" />
<conditions>
<add input="{HTTP_COOKIE}" pattern="(.*)" />
</conditions>
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" />
<set name="HTTP_COOKIE" value="{c:1}" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img" pattern="^http(s)?://widgets.site.com/(.*)" />
<action type="Rewrite" value="http{R:1}://localhost/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
答案 0 :(得分:1)
根据this,您应Set-Cookie
.domain.tld
www.domain.tld
,domain.tld
适用127.0.0.1 widgets.site.com
。但是从我的测试来看,它似乎也适用于C:\Windows\System32\drivers\etc\hosts
(在firefox中)。
P.S。您可以将/etc/hosts
添加到widgets.site.com
| 127.0.0.1
,完全跳过反向代理。然后,您的计算机会将<div class="checkbox" style="margin: 0px 6px; height: 12px;display:inline;"><input id="view:_id1:_id2:callback1:viewPanel1:0:viewColumn12:_colcbox" type="checkbox" name="view:_id1:_id2:callback1:viewPanel1:0:viewColumn12:_colcbox" value="5898E"></div>
解析为 $('body').bind('click',function(){
//your code here
});
。