ajax跨域jsonp及jquery中的调用问题

最近在工做中碰到跨域调用的问题。当用jquery的$.ajax调用另外一个域名服务器程序时在firefox下面能获取到返回值,可是返回值不被认为是一个正确的json格式。而在IE下面,直接会致使JS脚本错。

纠其缘由,是由于使用了ajax的跨域。这种状况下须要使用jsonp。虽然之前也使用过jsonp,这里给本身作个总结,也给碰到问题的人提供帮助。

使用jsonp须要作的修改:

1.客户端调用时须要在URL后面增长jsonp=callbackFunction,并定义好会调的callbackFunction
  如:http://www.xxxx.xxx?jsonp=jsonCallback

     < script >
    function jsonCallback(result){
        
    }
     < script >

2.服务器端,若是服务器端原来须要返回的json格式以下:
{"message":"投票不存在","result":"","code":"400","header":null}
则返回的数据将会是函数类型的数据:
jsonCallback({"message":"投票不存在","result":"","code":"400","header":null})

在jquery中使用jsonp

$.getJSON
     < script >
     $.getJSON("http://www.xxxx.xxx&jsoncallback=?",
    function(data){

    });
     </script>

$.ajax

        $.ajax({             type: "GET",             url: 'http://www.xxxx.xxx/api/topic-show!byId?',             data: "jsonCallback=?&topicId=" + topicId ,             dataType: "json",             success: function (msg) {             }         });
相关文章
相关标签/搜索