假如别人访问了我的网站aaa.com/?id=123然后网站自动获取地址栏的ID值 , 提交给bbb.com/?id=123并取得返回的JSON。
问题:我如何在aaa.com/?id=123里用js获取url的id,并把ID提交获取返回json里参数URL值,提取出来后(没有出现数据就等待出现数据)然后让aaa.com/?id=123实现跳转,JSON 返回格式如下:
{"resultcode": 200, "reason": "success", "data": {"url": "http://baidu.com", "base64": ""}, "error_code": 0}
本人比较水,希望能帮我写全一点。
bbb.com只提供json由于跨域问题aaa.com在客户端直接无法用js获取的,需要在aaa.com做代理来获取返回的json数据,你采纳了帮你写一个demo
var jsonStr = '{"resultcode": 200, "reason": "success", "data": {"url": "http://baidu.com", "base64": ""}, "error_code": 0}"';
var obj = JSON.parse(jsonStr);
var objData = obj["data"];
var objUrl = objData["url"];
能帮我写完整一点嘛,我不懂唉。
var data = '{"resultcode": 200, "reason": "success", "data": {"url": "http://baidu.com", "base64": ""}, "error_code": 0}"';
data = eval("(["+data+"])");
var url = data[0].data.url;
第一步 获取url中的id
var id = window.location.search.id;
第二步 get请求, 成功之后跳转
$get(
"bbb.com",
{"id":id},
success=(res.data)=>{
window.location = data.url
}
);
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURI(r[2]);
return null;
}
获取id 直接 调用getQueryString(“id”)
$.get("url",function(data){
var resultcode = data.resultcode;
},"json")
注意修改下面bbb.com的地址
aaa.com/?id=123
<script>
function redirect(data) {
data = data.query.results
if (data.resultcode == 200) location=data.data.url
else alert('数据错误\n'+JSON.stringify(data))
}
var m = /id=(\d+)/.exec(location.search.substring(1))//获取id参数
if (m) document.write('<script src="http://query.yahooapis.com/v1/public/yql?callback=redirect&q=select+*+from+json+where+url="http://bbb.com/?id='+m[1]+'"&format=json"><\/script>')
else alert('ID参数丢失!');
</script>
<script>
function redirect(data) {
data = data.query.results.json
if (data.data&&data.data.url) location = data.data.url
else alert('数据错误\n' + JSON.stringify(data))
}
var m = /id=(\d+)/.exec(location.search.substring(1))//获取id参数
if (m) document.write('<script src=\'http://query.yahooapis.com/v1/public/yql?callback=redirect&q=select+*+from+json+where+url=" http://lixiaoai.com/3.json?id=' + m[1] + '"&format=json\'><\/script>')
else alert('ID参数丢失!');
</script>