
js部分
(function(window,
document)
{
'use
strict';
var
jsonp
=
function(url,
data,
callback)
{
//1、挂载回调函数
var
fnsuffix
=
Mathrandom()toString()replace('',
'');
var
cbFuncName
=
'my_json_cb'
+
fnsuffix;
window[cbFuncName]
=
callback;
//2、将data转换成url字符串的形式
//{id=1,count=4}==>id=1&count=4
var
querystring
=
urlindexOf('')
==
-1
''
:
'&';
//判断url中最后是否有?,没有则为?
for
(var
key
in
data)
{
querystring
+=
key
+
'='
+
data[key]
+
'&';
}
//3、处理url中回调函数
url+=callback=sdgade
querystring
+=
'callback='
+
cbFuncName;
//querystring=id=1&count=4&callback=sdgade
//4、创建一个script标签
var
scriptElement
=
documentcreateElement('script');
scriptElementsrc
=
url
+
querystring;
//5、把script标签放到页面上
documentbodyappendChild(scriptElement);
};
window$jsonp
=
jsonp;
})(window,
document)
在页面中测试
<!DOCTYPE
html>
<html>
<head>
<title>jsonp</title>
</head>
<body>
<div
id="htt"></div>
<script
type="text/javascript"
src=">
如果在前台那么就用eval解析json,如果是后台你打开链接后需要通过流来把接口返回的String读到程序里,在解析
private String requestCgi(String cgiUrl, String write, String encode) throws IOException{
StringBuffer sb = new StringBuffer();
InputStreamReader reder = null;
BufferedReader breader = null;
InputStream in = null;
try {
String Burl = cgiUrl + write;
URL url = new URL(Burl);
// 打开连接
URLConnection conn = urlopenConnection();
connsetDoOutput(true);
in = conngetInputStream();
if (encode == null || encodeequals("")) {
reder = new InputStreamReader(in);
} else {
reder = new InputStreamReader(in, encode);
}
breader = new BufferedReader(reder);
String content = "";
while ((content = breaderreadLine()) != null) {
sbappend(content);
}
} catch (Exception e) {
eprintStackTrace();
} finally {
inclose();
rederclose();
breaderclose();
}
return sbtoString();
}
// 解析
String result = requestCgi(arg1, arg2, arg3);
JSONObject resultJson = JSONObjectfromObject(result);
String count = resultJsongetString("count");
JSONObject json = resultJsongetJSONObject("num400");
String num = jsongetString("number");
String monthminfee = jsongetString("monthminfee");
下边的都一样了。。
以上就是关于使用jsonp实现跨域获取数据实例讲解全部的内容,包括:使用jsonp实现跨域获取数据实例讲解、电信跨域宽带可以加itv、怎样跨域获取值,我有一个接口,通过url方式访问可以返回一个字符串类型的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)