跨域返回的jsonp数据一定需要提供回调函数吗?

跨域返回的jsonp数据一定需要提供回调函数吗?,第1张

jsonp的返回数据必须是以下这样的形式:

aaaaa({"xxx":"xxx"})

aaaaa是回调函数名(只是举例)。不是这样的话那就没办法了,因为跨域限制是浏览器提供的安全机制(以防止网站资源被别的非同域网站任意盗取),与网站本身无关,就好比浏览器限制d出窗口,那么网站的d出窗口的js代码就无效了。

jsonp是利用了<script src="..."></script>不受跨域限制的特性,把用户的ajax请求组合成script的src网址,从而突破跨域限制,但是这样一来,对方服务器的返回值就必须是合法的js语句才行(因为是要执行的),然后再通过本地预设的aaaaa这个函数把数据解析出来。

JSONP的方式返回,或者采用response输出即可。

JSONP返回的方式,看看这里:http://www.sojson.com/blog/121.html

response输出,看看下面的代码。

private void out(HttpServletResponse hresponse,Map<String,String> resultMap) throws IOException{

    //response编码,防止乱码

    hresponse.setCharacterEncoding("UTF-8")

    PrintWriter out = hresponse.getWriter()

    //输出

    out.println(JSONObject.fromObject(resultMap).toString())

    out.flush()

    out.close()

}

你好,前两天在学习nodejs的时候刚好使用过,jquery封装的ajax为我们提供了一个函数

jQuery.getJSON函数

通过函数jQuery.getJSON来实现跨域请求,如下是个人前两天的案例:

目标是:页面点击删除,将id发送至nodejs服务器,通过nodejs端来删除对应的数据:

页面ajax请求

nodeJS服务器

如果满意,望采纳,谢谢!


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

原文地址: https://outofmemory.cn/sjk/9962951.html

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

发表评论

登录后才能评论

评论列表(0条)

保存