【发布时间】:2018-03-09 20:54:07
【问题描述】:
我们正在使用 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 上发生,而在所有其他浏览器上都可以正常工作。 我试过了:
- 编码网址
- 已添加
crossdomain = true但它们都不起作用。这是 jQuery 的已知错误吗?如果是,我们是否有解决方法。
【问题讨论】:
-
是否需要任何类型的身份验证才能发出请求?我之所以问,是因为这看起来像是重定向到访客页面,原始网址已编码。
-
不,它根本不需要任何身份验证。加上“localhost/web/guest”这是默认的本地 url,它以某种方式附加到本地 url
-
我唯一能建议的是在 ajax 调用之前创建 url 并将其记录到控制台以确保它完全符合您的期望。 jQuery Ajax 方法不只是动态更改 url,除非您已明确编写代码来这样做。
-
是的,我做的一模一样,它显示了正确的 url,但是随后对这个奇怪的 url 进行了 ajax 调用
-
出于好奇,如果您在 ajax 调用之前将 url 构建为字符串,然后将该变量用作 url 参数,它会做同样的事情吗?我只问,因为它目前通过用双引号 (%22 = ") 包裹 _sbUrl 来分隔 url
标签: jquery ajax internet-explorer-10 url-encoding liferay-7