在asp.net mvc 中前后端分离,跨域调用图片时会将当前页面url相对路径附加在原有url中,使得图片url错误报404。
跨域解决方案是在webconfig中添加,即可解决跨域访问问题
<!--解决跨域-->
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
</customHeaders>
</httpProtocol>
</system.webServer>
第二种方便虽然麻烦,但是可以在webconfig中添加代码,而是在页面调用url中使用拼接和截取字符串的办法,直接在赋值img src时截取字符串并拼接,再赋值。
@{
string goodsImg = student.PhotoUrl;
string imgUrl = "~/upload/" + goodsImg.Substring(goodsImg.LastIndexOf('/') + 1);
}
<img id="Photo" width="207px" height="266px" src="@Url.Content(""+imgUrl+"")" />