jquery - 使用jquery ajax将本地url连接到绝对url

标签 jquery ajax internet-explorer-10 url-encoding liferay-7

我们使用 jquery ajax 来进行服务 get 调用:

$.ajax({
  url: _sbUrl + "gates/1.0/sweeps/getVehicleDetails/" + request.data.regn_no,
  method: "GET",
  success: function(response) {
    if (200 === response.statusCode) {
      if (typeof callback === 'function') callback(response);
    } else if (typeof callback === 'function') callback({});
  },
  error: function(response) {
    if (typeof callback === 'function') callback({});
  }
});

这里使用_sbUrlhttp://192.32.45.34:9090/。 当调用时,url 会更新为这样

http://localhost/web/guest/%22http://192.32.45.34:9090/%22gates/1.0/sweeps/getVehicleDetails/DE3SA2323

这只发生在 IE10 及以下版本的 IE 上,而在所有其他浏览器上工作正常。 我尝试过:

  1. 对网址进行编码
  2. 添加了crossdomain = true 但它们都不起作用。这是 jQuery 的已知错误吗?如果是,我们是否有解决方法。

最佳答案

根据 @Archer 的建议,问题出在 _sbUrl 上。 Url 是从属性文件中作为字符串获取的,对于 IE10,它还包含引号。 因此 http://192.32.45.34:9090/ 被获取为 "http://192.32.45.34:9090/"

_sbUrl = _sbUrl.replace(/\\\//g, "/");

@Archer 的推论是由于 %22http://192.32.45.34:9090/%22 具有 %22(相当于“)作为前缀和后缀。

关于jquery - 使用jquery ajax将本地url连接到绝对url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49189673/

相关文章:

Javascript/Jquery Internet Explorer 在点击时显示 div 的问题

jquery - 在ajax中引用 anchor 标记

jquery - 如何使用复选框隐藏/显示或在两个 div 表单字段之间切换?

ajax - 关于Ajax GET请求的Rust Hyper CORS Policy错误

javascript - 循环遍历 Javascript 中从 PHP 获取的对象

html - 为什么 IE1 0's "IE8 标准模式与 IE9 的不同?

javascript - 如何使jss或幻灯片的出现成为可触发事件?

javascript - 如何使用javascript查找 anchor 标记下的图像

javascript - 并非所有内联 JavaScript 都通过 AJAX 执行

css - Angular 4 - 在 IE 9 和 IE10 中加载内容后加载微调器不会消失