.Ajax调用---跨域请求

Ajax调用

结合jquery初始化.ajax调用请求

默认的ajax由于受到浏览器的限制,方法不允许跨域通信。如果尝试从不同的域请求数据,会出现安全错误,也就是所谓的跨域安全策略的一个错误。

跨域请求方式,怎么解决呢?

这个时候,jsonp来解决跨域问题

解决方式


$(function(){

  $.ajax(
      
      url: "xxxxx",
      type: "get",
      dataType: "jsonp",//定义请求数据类型为“jsonp”
      data: ""
         
      success: function(data){
                 //判断返沪数据是否成功
                  if(data.success){
		    document.querySelector("#show").innerHTML = data;
                  }
	    }, 
      error:function(err){
		    alert(err);
	    }

  );





});

传统方式

function sendGet(url){
    //用 ajax 写,默认请求类型为json
    $.ajax(
    {
	    url:url,
	    method:'get',
	    success: function(data){
		    document.querySelector("#haha").innerHTML = data;//这里的 data不是数组
	    },
	    error:function(err){
		    alert(err);
	    }					
    });

问题

  • 1、jsonp 只能使用get方式去请求,就算你是post 它也会自动转成get

  • 2、请求时,当服务器发送异常时,原生的ajax无法捕获异常

上一篇:jsonp理论


下一篇:uni-app 使用腾讯地图 H5端出现的key值异常和跨域问题解决