普通jquery的Ajax请求在控制台中是可见的,如下:
而在利用jsonp(json with padding)进行Ajax跨域时,发现Ajax请求不会在控制台显示。
跨域代码如下:
前端代码:
$.ajax({ type : "get",//jquey不支持post方式跨域 async:false,url : "http://www.cnblog.com",1)">跨域请求的URL dataType : "jsonp"传递给后端,用以获得jsonp回调函数名的参数名(默认为:callback),以拼凑返回值 jsonp: "callback"自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名 callback:"testCallback"成功获取跨域服务器上的json数据后,会动态执行这个callback函数 success : function(json){ console.log(json); } });
后台:
$callback = $_GET['callback']; 值为testCallback echo $callback . "({"key":"value"})";
可以看到后台返回的实际是 testCallback(json字符串);而不是简单的json字符串。
另外JQuery还有一个函数jQuery.getJSON(url,data,success(data,status,xhr))也可以完成跨域请求。
现在看firebug控制台Ajax就不会显示了。如果想要在js文件中隐藏可以考虑加密js。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。