我正在使用jQuery在我的站点上进行一些Web调用。
我注意到IE 11正在为我将子站点名称放入URL,但Chrome没有,这解释了为什么IE 11显示404。
Q:,我如何解决这个问题,这样浏览器就不重要了?
JavaScript:
$.ajax({
type: 'GET',
data: {},
url: 'outboundevents/api/outboundevent/actions/ping',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
});The Tools 'NETWORK‘Tab报告:
转介人:
这对于两种浏览器来说都是一样的。
Internet Explorer
请注意IE11如何两次放置网站名称..。
铬
发布于 2016-08-10 18:37:36
IE可能将outboundevents视为一个目录,而Chrome则将其视为一个文件。如果出现这种情况,那么相对路径将是不同的,因为IE认为您正在添加到outboundevents,而Chrome则认为您正在替换它。唯一的办法,我可以认为这会发生的是,如果你有一个尾随斜杠在IE,而不是在Chrome在主地址栏。
为了避免使用相对URL的问题,您应该尽可能让应用程序构建URL。
假设您在web应用程序中使用ASP.NET MVC:
如果您的javascript在页面中,您可以在那里这样做:
$.ajax({
url: "@Url.Content("~/outboundevents/api/outboundevent/actions/ping")"
});如果javascript位于一个单独的文件中,那么您可以在布局页面或HTML中的其他地方定义URL,然后检索它:
<input type="hidden" id="ping-action-url" value="@Url.Content("~/outboundevents/api/outboundevent/actions/ping")">
$.ajax({
url: jQuery("#ping-action-url").val()
});您可以使用全局javascript变量代替单独的隐藏字段,或者只需在布局页面上写入根,并在脚本文件中使用本地URL连接根。
https://stackoverflow.com/questions/38880934
复制相似问题