跨域呼叫介面的方法之一 ajaxSetup

2022-03-06 04:42:25 字數 2070 閱讀 3053

跨域查詢介面的資料,之前在公司時有發生過,產生的原因是,本地請求的網域名稱或ip位址不一致,解除方法,也是修改網域名稱和ip位址。比如:

如果本地呼叫這個介面中的資料,必須要修改你的請求位址也同樣為 192.168.1.23/get.php

/*

查詢介面

*/var config =;

var getbaseurl = function

()

最近在做乙個筆記時,因為也是呼叫別人的介面,而產生了跨域,即使在本地更改了請求的網域名稱或ip位址也不能直接使用 $.ajax({})中的get或post,會直接報跨域請求失敗,解決的辦法是使用 :$.ajaxsetup()

首先了解一下這個方法 $.ajaxsetup(),為所有 ajax 請求設定預設 url 和 success 函式,它的語法是:

jquery.ajaxsetup(settings )

什麼意思呢?settings 是乙個物件,其中的每個屬性表示需要更改預設設定的選項,而它的屬性值表示更改後的預設值:

//

需要更改的屬性:更改後的預設值

key : value

下面是我使用$.ajaxsetup()的使用示例方法:

$(function

());

function

searchdata(),

error:

function

(){}

});//這裡呼叫$.ajax()方法時,已經被$.ajaxsetup中的屬性 success 返回了正確的結果

$.ajax();

}

下面是官方文件中摘抄到的示例方法:

//

設定ajax的全域性預設選項

$.ajaxsetup( ,

error:

function(jqxhr, textstatus, errormsg)

} );

//未設定任何引數,但url、async、type、headers、error等引數的預設值均已被$.ajaxsetup()更改(如上)

$.ajax( );

//設定了url、type、success、error,就使用自己設定的引數值

//但async、headers等引數的預設值已被$.ajaxsetup()更改

$.ajax( ,

error:

function

(jqxhr, textstatus, errormsg)

});//

上述$.ajaxsetup()的預設設定對$.get()、$.post()、load()、$.getjson()、$.getscript()等ajax函式也生效

//因為這些函式也是在內部呼叫$.ajax()函式來實現的,只不過它們在內部都設定了一些引數

//$.get()在內部呼叫$.ajax()時已設定type為"get",因此仍然使用get方式。

//但url、async、headers、error等引數的預設值已被$.ajaxsetup()更改

$.get( );

//$.post()在內部呼叫$.ajax()時已設定type為"post",因此仍然使用post方式。

//url也被設定為"user/action.php?method=adduser"

//但async、headers、error等引數的預設值已被$.ajaxsetup()更改

$.post( "user/action.php?method=adduser" );

總之,我們的目的是在使用$.ajax({})時不管使用get還是post,介面中的資料是不存在跨域的就ok。

需要注意的是用$.ajaxsetup函式所設定的預設值不會應用到load()命令上。對於實用工具函式,如$.get()和$.post(),其http方法不會因為使用這些預設值而被覆蓋。設定get的預設型別不會導致$.post()使用http的get方法。

ajax跨域實現api 介面呼叫

背景 想實現跨域去呼叫介面,然後同時支援下次呼叫,能夠帶cookie資訊過來,同時支援來自多個源頭的網域名稱的跨域呼叫。1.這樣支援來自所有網域名稱的跨域呼叫 不支援跨域是,瀏覽器報錯 在api介面服務端加上相應的協議頭 header access control allow origin head...

ajax跨域呼叫(例項)

我們在使用ajax通訊的時候,往往有時候可能會用向另外乙個專案或者向其他伺服器請求資料。這是我們就使用到了ajax跨域請求 客戶端 getjson https baiduyunservice servlet?jsoncallback function result else json 注意點 1.再...

ajax跨域 ajax跨域學習總結(一)

網域名稱又稱網域 網域名稱,是由一串用點分隔的名字組成的internet上某一台計算機或計算機組的名稱,用於在資料傳輸時標識計算機的電子方位 有時也指地理位置 internet的核心服務dns domain name system,網域名稱系統,有時也簡稱為網域名稱 提供網域名稱到ip位址的相對映。...