篮球外围下注_篮球投注导航_[所有网址]

篮球外围下注_篮球投注导航_[所有网址]是该公司为打造信誉第一,2014最新体验金,篮球外围下注_篮球投注导航_[所有网址]这里的所有老虎机游戏及真人百家乐游戏都具有欧洲风格,致力成为最具传播力和互动性的娱乐城网站。

JS跨域交互(jQuery php)之jsonp使用心得

2019-09-05 03:00 来源:未知

 外部有一个网页需要访问路径”/test“下的内容,则可以通过JS脚本文件来跨域访问:

调用端:

点击提交按钮后,发现服务器端的Request.QueryString["callback"]返回一个随机函数名。这样就被设置成JSONP格式来传递数据了

后台处理路径“/test”的函数:

这个例子比较简单易懂,使用固定的回调函数名称:fncallback

复制代码 代码如下:

//处理函数
<script>
    function method(data){
        console.log(data);
    }
</script>
//跨域访问
<script src=";

<script type="text/javascript"> 
//注册页面加载完成回调函数(匿名) 
$(document).ready(function(){ 
//使用ajax方法调用跨域脚本; 
$.ajax({ 
url:"http://localhost/test.php", 
dataType: 'jsonp', 
success: function(data){ 
$(document.body).append("<hr />ajax ok!"   data.reqUrl); 
} 
}); 
}); 
</script> 

<input type="button" value="提交" onclick="SendData();"/>

图片 1

A男和B女居住在不同的国家A国和B国,在一次去C国旅行的途中相遇了,双方聊的比较Happy,旅行结束都回国了;但A男总是会想B女,想联系上B女,无奈当时没有留下B女的电话、邮箱、微信、QQ号码这些可以更加即时的联系方式,只是闲聊间知道B女地址,那就只能写信吧去C国也不太现实;于是就写信把自己的各种即时联系方式都写进去了,一封信寄出去了过了一段时间没有回音又写一封,就是没有收到C友的电话等任何回音;对方收到了没有呢,确定是收到了也看了。
这是为什么呢?C女不想搭理他呗(没有按A男指定的方式回调)!

public ActionResult ReturnJson()
{
string callback = Request.QueryString["callback"];
string json = "{'name':'张三','age':'20'}";
string result = string.Format("{0}({1})", callback, json);
returnContent(result);
}

//路径处理
app.get("/test",user.test);
//处理函数
exports.test=function(req,res){
 res.end("method(" JSON.stringify({mes:"跨域访问成功!"}) ")");
};
 外部有一个网页需要访问路径”/test“下的内容,通过JSONP来实现跨域访问:

//引入跨域访问中的jQuery函数库
<script src="http://localhost:3000/js/jquery-1.9.1.min.js"></script>
//jQuery中JSONP跨域访问
<script>
  $.ajax({
    url:"http://localhost:3000/test",
    type:"get",
    success:function(data){
      $("body").append(data.mes);
    },
    dataType:"jsonp",
    jsonpCallback:"method"
  });
</script>

我是在本地测试,跑了多个Web服务,本地页面访问地址:

functionreceive(data) {
alert(data.age);
}
</script>

通过上述代码我们可以看出JSOPN跨域访问和原始的JS跨域访问的不同之处是JSONP不需要写处理跨域访问的函数(例如上述方法中使用的method函数),在JSONP跨域访问时会自动帮我们创建处理跨域访问的函数。

<?php 
echo "var reqUrl = "" . $_SERVER["REQUEST_URI"] . "";"; 
echo $_GET["callback"] . "({"reqUrl": reqUrl });"; 

<script src="~/Scripts/jquery-1.7.1.min.js"type="text/javascript"> </script>
<script type="text/javascript">
functionSendData()
{
$.ajax({
type: "get",
async: false,
url: "/home/ReturnJson",
dataType: "jsonp",
success: function(data){
alert(data.name);
},
error: function(){
alert('fail');
}
});
}
</script>

jQuery中JSONP跨域访问的实现:

js跨域交互实现原理

您可能感兴趣的文章:

  • 跨域请求之jQuery的ajax jsonp的使用解惑
  • 浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
  • jquery ajax jsonp跨域调用实例代码
  • jquery ajax中使用jsonp的限制解决方法
  • jquery中的ajax方法怎样通过JSONP进行远程调用
  • 详解JavaScript中jQuery和Ajax以及JSONP的联合使用
  • 浅谈JQuery ajax jsonp 跨域访问
  • 关于jQuery.ajax()的jsonp碰上post详解

JSONP跨域访问的缺点:

JSONP(JSON with Padding),我更倾向于把最后一个字母P理解为 protocol(协议,约定);

<script type="text/javascript">
functionSendData() {
$.ajax({
type: "get",
async: false,
url: "/home/ReturnJson",
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback: "receive",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function(data) {
alert(data.name);
},
error: function() {
alert('fail');
}
});
}

//路径处理
app.get("/test",user.test);
//处理函数
exports.test=function(req,res){
    res.end("alert('JS跨域访问')");
};

  2、Javascript原生支持,后台语言几乎全部支持;

1.示例1
服务器端我们采用MVC的ACTION来返回数据

您可能感兴趣的文章:

  • jQuery使用ajax跨域获取数据的简单实例
  • java 结合jQuery实现跨域名获取数据的方法
  • JQuery 的跨域方法推荐_可跨任何网站
  • 深入理解jquery跨域请求方法
  • jquery中ajax处理跨域的三大方式
  • jquery中ajax跨域方法实例分析
  • jQuery使用ajax跨域请求获取数据
  • jquery ajax实现跨域请求的方法
  • jquery的ajax跨域请求原理和示例
  • jquery跨域请求示例分享(jquery发送ajax请求)
  • 利用JQuery和Servlet实现跨域提交请求示例分享
  • jQuery 获取跨域XML(RSS)数据的相关总结分析

跨域交互三:jQuery.ajax

首先介绍下$.ajax的参数
type:请求方式 GET/POST
url:请求地址
async:布尔类型,默认为true 表示请求是否为异步,如果为false表示为同步。
dataType:返回的数据类型
jsonp:传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success:调用成功执行的函数
error:异常处理函数

1.它只支持GET请求而不支持POST及其他类型的请求;

注意:我在请求的地址中添加了“?callback=?”,这是做什么用的呢?

public class HomeController : Controller
{
//
// GET: /Home/

 结果会在当前的网页中显示如下信息:

被调用端,也可以说是服务端

复制代码 代码如下:

同样在后台有一个处理路径“/test”的函数:

服务端

复制代码 代码如下:

通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下面把具体解决方案介绍如下。

使用总结

}

2.它的兼容性更好,不需要XMLHTTPRequest或ActiveX的支持;

效果:在页面尾部增加一条线,以及:getScript ok! ,后面紧跟被调用端返回的它接收到的请求地址:

关于JSONP的概念和为什么要使用JSONP网上已经有很多教程,这一节主要演示下在JQUERY中的ajax方法怎样通过JSONP进行远程调用

1.它不像XMLHTTPRequest对象实现的AJAX请求那样受到同源策略的限制;

<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
//定义名称为“fncallback”的回调函数,参数接收JSON对象; 
function fncallback(data){ 
$(document.body).append("<hr />getScript ok!"   data.reqUrl); 
} 
//注册页面加载完成回调函数(匿名) 
$(document).ready(function(){ 
//使用getScript方法调用跨域脚本; 
$.getScript("http://localhost/test2.php"); 

}); 
</script> 

客户端使用jsonp来传输数据

3.在请求完成后可以通过调用callback的方法传回结果。

跨域交互一:jQuery.getScript

2.自定义函数名
可以在传递过程中自定义函数名,只要使用jsonpCallback参数就可以了。
jsonp:表示传递的参数,默认为callback,我们也可以自定义,服务器段通过此参数,获取自定义的函数名称,服务器这样获取 Request.QueryString["callback"]
jsonpCallback表示传递的参数值,也就是回调的函数名称,这是自定义的名称。

图片 2

服务端

@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}

复制代码 代码如下:

调用端,也可以说是客户端:

public ActionResult Index()
{
returnView();
}

TAG标签: 篮球外围下注
版权声明:本文由篮球外围下注发布于系统,转载请注明出处:JS跨域交互(jQuery php)之jsonp使用心得