關(guān)于Ajax的疑難雜癥詳解
目錄

跨域問題

如圖所示,這是通過jquery封裝的ajax請求了一個本地的php文件(無框架),console提示cors策略已阻止“來自來源”的“null”:請求的資源上不存在“訪問控制允許來源”標(biāo)頭。

解決方案

設(shè)置header頭

header("access-control-allow-origin: *");允許所有域名請求

header("access-control-allow-origin: http://127.0.0.1");允許一個域名請求

     <?php
     header("access-control-allow-origin: *");

      function index(){
       sleep(2);
       return  json_encode(['code'=>8888888]);
      }

      echo index();
     ?>

請求成功進(jìn)error問題

這多半是因為你要求返回的是json格式的數(shù)據(jù),但實際返回的數(shù)據(jù)不是正確的json數(shù)據(jù)

<script>
  var data = {
    parent:1
  }
  $.ajax({
    type: "post",
    url: "http://127.0.0.1",
    datatype:'json',
    success: function (response,index,obj) {

      console.log(obj.done(function() {  //延遲請求成功后的回調(diào)
      alert("$.get succeeded"); 
      }));  

      console.log(index);     //log success
      console.log("成功",response);   //請求成功返回的數(shù)據(jù)
    },
    error(res){
      console.log("失敗",res);
    }
  });
</script>

ajax的第一個字母是asynchronous的開頭字母,這意味著所有的操作都是并行的,完成的順序沒有前后關(guān)系。$.ajax()的async參數(shù)總是設(shè)置成true,這標(biāo)志著在請求開始后,其他代碼依然能夠執(zhí)行。強(qiáng)烈不建議把這個選項設(shè)置成false,這意味著所有的請求都不再是異步的了,這也會導(dǎo)致瀏覽器被鎖死。

總結(jié)

到此這篇關(guān)于ajax的疑難雜癥的文章就介紹到這了,更多相關(guān)ajax疑難雜癥內(nèi)容請搜索碩編程以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持碩編程!

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频