ajax跨域请求(jquery)

首先,jsonp 只支持ajax的get请求跨域,jquery

$(".login").on("click",function(){
   $.ajax({
      type:"get",
      url:"http://localhost:9090/dologin",
      data:{
         'username':$("#username").val(),
         'password':$("#password").val()
      },
      dataType:"jsonp",
      jsonp:"successCallback",
      jsonpCallback:"success_jsonpCallback",
      success:function(data){
         console.log("我请求成功了")
      },
      error:function(){
         console.log("失败了")
      }
   });
})

如上代码,应该在正常的ajax中修改一部分以及添加一部分参数,具体以下ajax

dataType:"jsonp",
jsonp:"successCallback",
jsonpCallback:"success_jsonpCallback",

dataType必须为“jsonp”json

jsonp为请求url中jquery自动加的一个参数,跨域

http://localhost:9090/dologin?successCallback=success_jsonpCallback&username=yang&password=123&_=1494919496254浏览器

其中若是没有函数

jsonp:"successCallback",

那么jquery会默认为“callback”,此例子中配置为successCallbackjsonp

若是没有url

jsonpCallback:"success_jsonpCallback",

那么函数名称便不会是success_jsonpCallback,而是jquery自动生成的形如“jquery_xxxxxx”的函数get

在后台,必定要这样返回io

jj := "success_jsonpCallback" + "({\"flag\":\"successfuly\"})"

也就是说,不能够直接返回json串,而是要把json串当作参数,放在success_jsonpCallback函数中,把他们当成一个总体返回,在浏览器看来,返回的是

必定要这么写,不然会出错

相关文章
相关标签/搜索