首页 > web前端 > js教程 > 为什么我的 jQuery AJAX JSONP 请求无法从跨域源返回数据?

为什么我的 jQuery AJAX JSONP 请求无法从跨域源返回数据?

Linda Hamilton
发布: 2024-11-19 08:51:02
原创
696 人浏览过

Why is my jQuery AJAX JSONP request failing to return data from a cross-domain source?

使用 jQuery 进行跨域 AJAX JSONP 请求

问题说明

当尝试使用 jQuery AJAX 和提供的代码解析 JSON 数组数据时,用户没有收到任何输出。

概念解释

跨域 AJAX 调用需要 Web 服务支持方法注入才能运行 JSONP。客户端代码看起来有效,但问题可能出在 Web 应用程序和 Web 服务的域中。

使用 jQuery 的 dataType: 'jsonp' 时,会在查询网址。该方法在 window 对象中充当代理的角色,类似于:

window.some_random_dynamically_generated_method = function(actualJsonpData) {
  successCallback(actualJsonData); // Calls the success function passed to $.ajax
}
登录后复制

服务器端修改

要解决该问题,必须修改服务器端代码以包装 JSON函数名称中的数据与随查询字符串传递的数据相匹配。例如,如果查询字符串包含 ?callback=my_callback_method,则服务器的响应应为:

my_callback_method({your json serialized data})
登录后复制

以上是为什么我的 jQuery AJAX JSONP 请求无法从跨域源返回数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板