关于使用jsonp跨域获取数据的问题

查看:127
本文介绍了关于使用jsonp跨域获取数据的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

想用jsopn跨域请求一个别的服务器上的json文件
别的服务器的json文件如图


但是报错

在网上查了下说是给json数据加个(),不报错了,但是数据还是出不来。请问怎么解决这个问题。是json数据格式的问题么。

解决方案

jsonp的原理就是通过动态添加script标签来发送网络请求,服务端解析出请求参数(回调函数名,客户端所需数据两部分)再返回一个内容为函数执行的脚本,长相大概是:callbackName(data)
所以jsonp是需要服务端和前端达成一些协议的,比如如何告诉服务端回调参数的参数名是什么,你代码中$.ajaxjsonp属性就会重写这个参数,比如你这里写了callback,服务端就要读取callback这个字段去解析出你需要的callbackName是什么,jsonpCallback则是你期望的jsonp成功回调名,然后把这个方法提前定义好,请求成功了会去调用这个函数。不知道你的返回值和其它部分代码是怎么写的,这段代码里没看到message函数的定义,另外既然写了success回调好像就可以直接处理请求结果了,jsonpCallback貌似就不需要定义了,另外就是你的服务器如何解析回调名需要确认,所以可以尝试:

  1. 和服务端沟通,对方是根据哪个参数判断回调名的,把jsonp属性改成那个参数。

  2. 定义好message函数,把success删掉;或者不定义message,把jsonpCallback删掉。

这篇关于关于使用jsonp跨域获取数据的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆