jquery 跨域ajaxjsonp使用方法

    技术2022-05-20  33

       所谓跨域就是在不同的域名下操作数据。为了跨域,jquery的ajax提供了专门的一个jsonp数据格式。但是真到你用了就会发现很多错误。

     我遇到几个问题网上讲的都不是很明白, 现在就我遇到的错误讲下,希望能对你有用~~。

       客服端代码:

    $.ajax({ dataType: 'jsonp', url:'your web site', data:'your date', success:function(data){ alert (data.con); }, error:function (XMLHttpRequest, textStatus, errorThrown) { // 通常情况下textStatus和errorThown只有其中一个有值 alert (textStatus); // the options for this ajax request }

    用户端代码如果只是简单的如:{con:'hello~~',title:'xxxxxx'}

    这时就会在提示错误    invalid label  (想明白为什么错了吗?别急~~)

    为了解决这个问题。我在网上百度啊,百度啊说是callback函数问题,看的不是太明白。我就写了一个例子

    pzm=trim(request.QueryString("callback")) response.write pzm&"({con:""hello"",title:""xxxxxx""})"

    问题解决了。这时候客服端可以获取jsonp的值了。

    要明白为什么这么写。很简单,jquery要获取的是一个javascript 函数,函数名为callback随机产生的,所以在服务器端我们要把传递的数据写成javascript函数的形式如:callback_value({con:"hello",title:"xxxx"})

    这里callback_value就是jquery ajax随机传递到页面的值,在php里获取这个值用calback_value=$_get['callback'];

    asp里用callback_value=request("callback")

    要注意的几点,跨域只能使用jsonp格式,只能用get方法。所以data数据不要太长,不让就会报错。

     

    明白了吗?本人水平有限,理解能力有限,本文只是希望能给点思路。~~希望能帮到呢~

     

     

     

     


    最新回复(0)