我正在研究一些实际上是网站A上的迷你搜索框的代码,它会接受一些输入,然后路由到网站B.网站B将根据网站A上使用的搜索条件显示结果。
我在网站B上有一个准备好接受参数的网络方法。我从网站A调用这个web方法,我可以看到查询执行正常。我的问题是web方法的结果是一个html字符串,然后放到站点B上Div的.html属性.html不是整个页面,事实上它只是搜索结果。
我理想情况下需要重定向到该页面&将html注入div。全部来自网站A的主要ajax呼叫。
这是我的代码:(从网站a调用)
$.ajax({
type: "POST",
url: 'http://siteb.com/default.aspx/doSearch',
data: jdata,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false,
success: function (data) {
window.location = "http://www.siteb.com/default.aspx";
$("#pageContentWrapper").html(data.d);
},
error: function () {
alert("An error happened while getting the search");
}
});
所以pageContentWrapper是我想要渲染data.d结果的地方。一切正常,直到window.location转到站点b,我认为data.d脱离了上下文,我得到了没有任何搜索结果的主要默认页面。
有没有办法可以保存data.d的上下文直到完成ajax请求,还是有更好的方法来完成这个?
非常感谢
答案 0 :(得分:0)
Wy,你不这样做:
http://www.siteb.com/search.aspx?s=What it A
然后在网站B上完成搜索?
答案 1 :(得分:0)
这不是一个背景问题。当您致电window.location
时,您正在浏览器导航到完全不同的页面。您正在运行的任何JavaScript(在这种情况下为$("#pageContentWrapper").html(data.d)
)将完全停止。您需要找到一些其他方式来传递您想要维护的信息,方法是将其传递到URL参数(http://www.siteb.com/default.aspx?query=some_query
)或在站点b上呈现内容而不强制页面重定向