JS 跨域問題和解決方案

2021-08-01 07:33:09 字數 977 閱讀 1811

跨域問題是瀏覽器同源策略限制,當前網域名稱的js只能請求相同網域名稱下url。

解決方式通常有兩種:

1.使用jsonp,要求在後端返回的是jsonp格式的資料

js**:

$("button").click(function(),error:function()

});});

後端**:
if(isset($_request ['callback'])&&!empty($_request['callback']))

echo $jsoncallback . '(' . $json_data . ')';

die();

後端的**先判斷是否有callback,有的話則需要返回的jsonp格式資料

2.第二種方式在後端header設定access-control-allow-origin:*
js**
$("button").click(function(),error:function()

});});

後端**:
header('access-control-allow-origin:*');

echo $json_data;

die();

採用著這種方式優點在於支援post方式,缺點在於相當於api對外開放了,所以要加上要傳遞一些引數,
在測試的時候,採用jsonp的方式,在後端**設斷點,發起請求之後進入到了斷點。
而採用設定access-control-allow-origin:*的時候,怎麼也進不到斷點裡,不過最終後端都有返回資料。

跨域和解決方案

代補充 什麼是跨域 當乙個請求url的協議 網域名稱 包括子域 埠三者之間任意乙個與當前頁面url不同即為跨域。注 網域名稱和網域名稱對應的ip之間也屬於跨域 什麼是同源策略 sop same origin policy 是一種約定,是瀏覽器最核心也最基本的安全功能,否則瀏覽器容易受到xss csf...

js跨域及解決方案

當前發起請求的域與該請求指向的資源 該請求所在的頁面 所在的域不一樣。此時該請求就會受到瀏覽器sop 同源策略 的限制,這樣做可以降低被csrf 跨站請求偽造 攻擊的可能,但是同源策略並不能避免csrf。對csrf感興趣的可以戳這裡 這裡的域指的是這樣的乙個概念 我們認為若協議 網域名稱 埠號均相同...

JS跨域問題解決方案

這個問題弄了好久 一定要記下來 一般用ajax是不可能實現跨域問題的 這裡就要用到 標籤屬性src 任何有src屬性的標籤 都可以跨域呼叫令乙個域的後台 想src http i.joysys.com index.aspx 就可以呼叫 i.joysys.com的index.aspx 頁面了 但是雖然呼...