使用jquery ajax

时间:2018-03-09 08:41:07

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

我们正在使用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({});
  }
});

此处_sbUrl使用http://192.32.45.34:9090/。 进行调用后,网址将更新为此

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

这只发生在IE10及以下版本的IE上,而在所有其他浏览器上运行良好。 我试过了:

  1. 编码网址
  2. 已添加crossdomain = true 但是它们都没有工作。这是jQuery的一个已知错误吗?如果是的话,我们是否有相同的解决方法。

1 个答案:

答案 0 :(得分:0)

根据@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(相当于“)作为前缀和后缀。