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

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

Linda Hamilton
Linda Hamilton原创
2024-11-19 08:51:02671浏览

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