使用jsonp实现跨域获取数据实例讲解

使用jsonp实现跨域获取数据实例讲解,第1张

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方式访问可以返回一个字符串类型的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10150681.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存