首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web在浏览器之间的行为不同

Web在浏览器之间的行为不同
EN

Stack Overflow用户
提问于 2016-08-10 18:26:44
回答 1查看 61关注 0票数 0

我正在使用jQuery在我的站点上进行一些Web调用。

  • 当我使用Chrome测试时,它运行得很好
  • 当我使用IE 11进行测试时,它作为404失败。

我注意到IE 11正在为我将子站点名称放入URL,但Chrome没有,这解释了为什么IE 11显示404。

Q:,我如何解决这个问题,这样浏览器就不重要了?

JavaScript:

代码语言: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如何两次放置网站名称..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 18:37:36

IE可能将outboundevents视为一个目录,而Chrome则将其视为一个文件。如果出现这种情况,那么相对路径将是不同的,因为IE认为您正在添加到outboundevents,而Chrome则认为您正在替换它。唯一的办法,我可以认为这会发生的是,如果你有一个尾随斜杠在IE,而不是在Chrome在主地址栏。

为了避免使用相对URL的问题,您应该尽可能让应用程序构建URL。

假设您在web应用程序中使用ASP.NET MVC:

如果您的javascript在页面中,您可以在那里这样做:

代码语言:javascript
复制
$.ajax({
    url: "@Url.Content("~/outboundevents/api/outboundevent/actions/ping")"
});

如果javascript位于一个单独的文件中,那么您可以在布局页面或HTML中的其他地方定义URL,然后检索它:

代码语言:javascript
复制
<input type="hidden" id="ping-action-url" value="@Url.Content("~/outboundevents/api/outboundevent/actions/ping")">

$.ajax({
    url: jQuery("#ping-action-url").val()
});

您可以使用全局javascript变量代替单独的隐藏字段,或者只需在布局页面上写入根,并在脚本文件中使用本地URL连接根。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38880934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档