就是在當前網域名稱下去訪問其他網域名稱的位址,這就是跨域。
由於瀏覽器本身的同源機制,為了安全,不允許本網域名稱下去訪問其他網域名稱的指令碼。所以有了跨域問題,那怎麼解決跨域問題呢?
加入herder jsonp **直接在伺服器端宣告,允許訪問某個指定的網域名稱,比如php在頭部加上
1.1允許單個網域名稱訪問
指定某網域名稱(跨域訪問
header('access-control-allow-origin:');
2.2允許多個網域名稱訪問
指定多個網域名稱(等)跨域訪問,則只需在檔案頭部新增如下**:
$origin = isset($_server['http_origin'])? $_server['http_origin'] : '';
$allow_origin = array(
'',''
);if(in_array($origin, $allow_origin))
2.3允許所有網域名稱訪問
允許所有網域名稱訪問則只需在檔案頭部新增如下**:
header('access-control-allow-origin:*');
這就是宣告允許所有網域名稱來訪問,*就是代表所有網域名稱,當然可以把*換為具體指定的網域名稱比如http://localhost/test.php這樣就可以訪問到該網域名稱。
**訪問其實在實際應用中有很多場景,在跨域中應用的原理做法為:通過反向**伺服器監聽同埠,同網域名稱的訪問,不同路徑對映到不同的位址,比如,在nginx伺服器中,監聽同乙個網域名稱和埠,不同路徑**到客戶端和伺服器,把不同埠和網域名稱的限制通過反向**,來解決跨域的問題,案例如下:
server
location /apis
}
jsonp是解決跨域問題的常用辦法。在客戶端傳送ajax請求時,宣告資料型別和jsonp這樣就可以訪問。同時在伺服器端返回的時候要加上json jsoncallback這樣也可以解決跨域問題。
php**
echo $_get['jsoncallback'] . "(".json_encode($row).")";
前端**
$.ajax(,
error:function(result)
});
徹底解決 OBJC CLASS
最近在使用靜態庫時,總是出現這個問題。下面總結一下我得解決方法 1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的...
徹底解決INSTALL FAILED UPDATE
按ctrl c退出系統,利用adb pull data system packages.xml命令將packages.xml放到你pc機本地,然後找到你需要的包名,刪除到的一段資料。例如 儲存packages.xml,然後adb push packages.xml data system將packa...
徹底解決 OBJC CLASS
1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的link binary with libraries中新增 3....