首页 > web前端 > js教程 > JSONP如何解决jQuery中的跨域AJAX问题?

JSONP如何解决jQuery中的跨域AJAX问题?

Susan Sarandon
发布: 2024-12-18 09:49:10
原创
140 人浏览过

How Can JSONP Solve Cross-Domain AJAX Issues in jQuery?

使用 jQuery 进行跨域 AJAX

jQuery 的 AJAX 功能是动态 Web 开发的重要工具。但是,当跨不同域执行 AJAX 请求时,您可能会遇到跨源资源共享 (CORS) 问题。

当 test.php 和 testserver.php 驻留在不同的服务器上时,就会出现这样的问题,从而导致“错误”警报被触发。这是因为浏览器安全措施默认限制来自不同来源的 AJAX 请求。

解决方案:JSONP

为了克服 CORS,可以使用 JSONP(带有 Padding 的 JSON)。 JSONP 采用不同的方法,从远程服务器动态加载脚本,避免 CORS

实现

jQuery:

$.ajax({
  url: "testserver.php",
  dataType: 'jsonp', // Specify JSONP data type
  success:function(json){
    // Process JSON data
    alert("Success");
  },
  error:function(){
    alert("Error");
  }      
});
登录后复制

PHP:

<?php
$arr = array("element1", "element2", array("element31", "element32"));
$arr['name'] = "response";
echo $_GET['callback']. "(".json_encode($arr).");";
?>
登录后复制

请注意,PHP 的 echo 语句旨在包装jQuery 提供的回调函数中的 JSON 数据,包括正确的引号。

或者,jQuery 的 $.getJSON() 可以用作简写方法,并附加“callback=?”作为 URL 的 GET 参数。 jQuery 会根据这个参数自动生成合适的回调函数。

以上是JSONP如何解决jQuery中的跨域AJAX问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

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