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

Local url being concatenated to absolute url using jquery ajax

我们正在使用 jquery ajax 进行服务调用:

$.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. 编码URL
  2. 已添加 crossdomain = true 但是 none 其中 worked.Is 这是 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(相当于 ")作为前缀和后缀。