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函數中,把他們當成一個總體返回,在瀏覽器看來,返回的是

必定要這麼寫,不然會出錯

相關文章
相關標籤/搜索