我有一个ajax函数,它在成功时重定向到从url返回的响应:
document.getElementById("button1").addEventListener("click", function (e) {
e.preventDefault();
$.ajax({
url: 'http://localhost:8080/someLoginUrl',
method: 'GET',
crossDomain : true,
xhrFields: {
withCredentials: false
},
success: function(response){
window.location.href = response;
}
});
});
http://localhost:8080/someLoginUrl
返回的响应只是一个网页,包含一个url:
这是响应页面的html:
<html><head></head><body>https://localhost:8080/anotherLogin</body></html>
因此,一旦我单击按钮button1
,它就重定向到https://localhost:8080/anotherLogin
,而不是重定向到http://localhost:8080/someLoginUrl
,这是我想要的行为。然而,我想在success
函数中对response
进行一个小操作——我想将协议从https
更改为http
。我该怎么做?
我尝试了response = response.replace('https', 'http');
,但这并没有改变任何东西。
我能理解你的问题吗!您希望将您的成功响应数据发送到发生此操作的同一页面
首先,您必须创建一个id为<div id=res_data> </div>
的dive,并将此div放置在您想要显示响应数据的位置。
那么你的最终代码是
document.getElementById("button1").addEventListener("click", function (e) {
e.preventDefault();
$.ajax({
url: 'http://localhost:8080/someLoginUrl',
method: 'GET',
crossDomain : true,
xhrFields: {
withCredentials: false
},
success: function(response){
$('#res_data').val(response);
}
});
});
如果你觉得这对我没有帮助,就给我打电话。