jquery ajax 跨域问题,jsonp的解决方法

在使用ajax时,出现跨域问题

  • 问题code
$.ajax({
           url: "http://10.10.10.10:8080/test,
           type: 'get',
           dataType: 'json',
           success: function (data) {
               console.log(data);
           },
          error:function(error){
               console.log(error);
          }
});
//这里会报错,出现跨域问题
  • 修改以后
$.ajax({
           url: "http://10.10.10.10:8080/test,
           type: 'get',
           dataType: 'jsonp',
           jsonp: "callback",
           jsonpCallback:"jsonpCallback",
           success: function (data) {
               console.log(data);
           },
          error:function(error){
               console.log(error);
          }
});
function jsonpCallback(data){
          console.log(data);
  }
//这里jsonpCallback(可以自定义,但是得和服务器返回的名称保持一致)。
//是请求的数据后,返回回来的json串中回调函数的名称。
//所以你只需在定义一个名为jsonpCallback 的function,请求成功后会调用这个函数。
  • 注意
    后台返回的数据,必须要用回调函数包起来。比如如果你本来返回的数据为:[{name:"zhangsan",age:18}]
    使用jsonp请求后,就应该返回:
    jsonpCallback([{name:"zhangsan",age:18}])(这点很重要)。

你可能感兴趣的:(jquery ajax 跨域问题,jsonp的解决方法)