如何快速解決JS或Jquery ajax異步跨域的問題
簡單的概括下,解決辦法有兩種。
一種是jsonp方式:即在前端發(fā)送異步請求時,添加相關(guān)的jsonp設(shè)置或配置;后端則返回可供jsonp解析的格式的串。
但是jsonp方式只支持get的請求方式,并且不被新瀏覽器版本的支持(新瀏覽器版本多進(jìn)行OPITION請求--異步安全檢查的測試的請求,所以jsonp方式無法通過),
這里就不多了解了。
一種是cros方式,優(yōu)點(diǎn)就是更安全,能指定連接白名單,能限定請求方法(也就是支持多種請求方法),主流瀏覽器都支持。主要說一下實(shí)現(xiàn)方式,
前端:和普通異步請求一樣的格式,如:
$.ajax({
url :'http://localhost:8080/myProject/test'
type : "GET",//不局限于get
data:{"key1":value1,"key2":value2},
async : true,
success : function(data) {
var dataObj=eval("("+data+")");
console.log(dataObj);
},
error : function(data) {
alert( "服務(wù)器連接失敗 ajaxJsonp" );
}
});
后端:主要是設(shè)置響應(yīng)頭參數(shù)
response.setHeader("Access-Control-Allow-Origin", "*");//設(shè)置可跨域資源共享的域名,只能設(shè)置一個具體的域名,但*可以代表所有
response.setHeader("Access-Control-Allow-Methods","GET,POST,PUT,OPTIONS");//設(shè)置可跨域資源共享的請求方式
response.setHeader("Access-Control-Allow-Credentials","true");
response.setHeader("Access-Control-Allow-Headers" ,"Origin, X-Requested-With, Content-Type, Accept");
相關(guān)文章
JQuery擴(kuò)展插件Validate 3通過參數(shù)設(shè)置錯誤信息
最終顯示在頁面上的錯誤分為兩種:第一種是默認(rèn)錯誤信息,該信息已經(jīng)被定義在插件中了,可以手動修改。2011-09-09
基于jquery用于查詢操作的實(shí)現(xiàn)代碼
通過javascript得到用戶操作改變url參數(shù)從而實(shí)現(xiàn)某些功能,如查詢(具體的查詢由服務(wù)器端代碼得到url中的參數(shù)組成查詢語句實(shí)現(xiàn))。2010-05-05
checkbox 選中一個另一個checkbox也會選中的實(shí)現(xiàn)代碼
本文給大家?guī)砹薱heckbox選擇器之checkbox 選中一個另一個checkbox也會選中的實(shí)現(xiàn)代碼 ,非常不錯,有需要的可以參考下2016-07-07
jQuery實(shí)現(xiàn)動畫效果circle實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)動畫效果circle的方法,涉及jquery鼠標(biāo)事件及頁面動畫操作相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
JQuery.uploadify 上傳文件插件的使用詳解 for ASP.NET
今天下午整理文件上傳的例子,感覺收集到的例子都很不人性話,后來找到一個還可以的,本來想改成類似于騰訊QQ相冊那種方式,仔細(xì)看了一下是Flash的, 而且那個極速上傳插件也不知道用什么做的?問了一下,說是什么cgi. 搞得一頭霧水2010-01-01
jQuery實(shí)現(xiàn)的事件綁定功能基本示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的事件綁定功能,結(jié)合簡單表單驗(yàn)證實(shí)例分析了jQuery事件綁定的實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-10-10

