关于$.ajax()跨域获取jsonp格式的数据疑惑

发布于 2022-09-01 16:57:04 字数 377 浏览 12 评论 0

根据jquery的文档里写的格式
$.ajax({

type:"POST",
url:"xxx.xxxx.com/1",
dataType:"jsonp",
timeout:"2000",
success:function(data){
    console.log(data)
}

})

服务器上的1.json文件内容为
jsonp({"name":'123"})

问题出现在success这一步,每次我执行代码就会出现jsonp未定义的报错,只能在$.ajax外部添加一个方法function jsonp(data){console.log(data)}来获取jsonp数据,同时要把success这步删除。这究竟是什么道理呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

愛放△進行李 2022-09-08 16:57:05
{
             type: "get",
             async: false,
             url: url?code=aaa,
             dataType: "jsonp",
     
             jsonpCallback:"jsonpHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
             success: function(json){
                 alert('您查询到信息:价格: ' + json.price + ' 元,还剩: ' + json.tickets + ' 张。');
             },
             error: function(){
                 alert('失败了!');
             }
         }
薔薇婲 2022-09-08 16:57:05

jasonp是利用dom添加script实现的。当然不能那么做了。

仅冇旳回忆 2022-09-08 16:57:05

JSONP 实质就是在HTML里插入 <script></script>,因此请求的数据即是要执行的脚本。当你返回

jsonp({"name":'123"})

时候,意思要执行 jsonp 这个函数

所以如果没有定义该函数,会 Error

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文